Я использую Emacs (23.3.1) на OS X. Я выдаю команды git из терминала, не используя какие-либо функциональные возможности Emacs VC. У меня есть Emacs, настроенный для обновления при изменении файлов, что включено в следующих строках моего файла .emacs:
(custom-set-variables
...
'(auto-revert-interval 1)
...
)
(global-auto-revert-mode 1)
Это всегда работало, как я ожидал; если я потяну, мои буферы Emacs будут обновляться слияниями или конфликтами, как если бы я вышел из буферов и заново загрузил каждый из них.
Недавно я начал перебазировать (вызывая git-fetch, а затем git-rebase) вместо простого вытягивания (с помощью git-pull), и я не знаю, действительно ли проблема связана с git-rebase, но я, конечно, не замечал проблемы раньше и сейчас.
Так вот в чем проблема: я обновляю файл, фиксирую изменения с помощью git commit -am "..."
, запускаю git fetch origin
, затем запускаю git rebase origin/master
(иногда сжатие фиксируется вместе в интерактивном режиме). Теперь, когда я загрузил удаленные обновления, я продолжаю редактировать файл и обнаружил, что, похоже, я потерял все свои последние изменения. Когда это произошло в первый раз, я очень разозлился и проклял алгоритм rebase за то, что каким-то образом потерял свои изменения, пока не понял, что файл полностью исправен, и просто Emacs каким-то образом вернулось к версии файла до изменений, которые я только что совершил. Я всегда могу решить проблему, закрыв буфер и загрузив файл снова, но каждый раз это довольно сложно.
Кто-нибудь знает, в чем проблема?