Поправка коммита, которая редактируется как часть перебазирования в magit

Я использую Emacs +, во многих отношениях это невероятный режим работы с git. Есть один аспект моего рабочего процесса, который я не могу сопоставить с этим, и, следовательно, с этим вопросом.

Иногда у вас есть коммит, который должен быть переработан в отдельные коммиты. Я могу интерактивно перебазировать мои коммиты с помощью magit и объявить о своем намерении редактировать указанный коммит.

Теперь мне нужно переключиться на git gui, выбрать "ammend last commit", который показывает мне поэтапные изменения, и удалить те части, которые я хочу сделать отдельным коммитом. Затем я фиксирую, ставлю исключения и снова фиксирую - вуаля, у меня есть новый коммит в моей истории.

Я до сих пор не нашел способ сделать это с помощью Emacs. Есть намеки?

1 ответ

Решение

После того, как вы начнете перебазирование, вместо того, чтобы идти к графическому интерфейсу, сделайте magit-reset-head для HEAD~1, это даст вам возможность отменить изменения и подготовить и зафиксировать, как вам нужно, прежде чем, наконец, продолжить ребаз из статусный буфер.


Пример сценария рабочего процесса:

  1. зафиксировать изменения в файле A (commit 1)
  2. зафиксировать изменения в файле B и файле C (зафиксировать 2)
  3. зафиксировать изменения в файле D (зафиксировать 3)
  4. понимать, что вы хотите, чтобы изменения в файле B и файле C были отдельными коммитами
  5. бежать magit-log
  6. начать интерактивную перебазировку (E) при коммите 2.
  7. укажите, что вы хотите отредактировать (e) зафиксировать 2 и завершить (CcCc)
  8. вернуться в буфер состояния magit.
  9. бежать magit-reset-head (х), укажите HEAD~1 в срочном порядке.
  10. вы увидите изменения для коммита 2-го этапа.
  11. отменить внесение изменений в файл C.
  12. зафиксировать внесенные изменения для файла B.
  13. подготовить и зафиксировать изменения в файле C.
  14. продолжить и закончить ребаз с помощью RC

Теперь у вас будет четыре коммита, каждый из которых меняет один файл в порядке A, B, C, D.

Другие вопросы по тегам