Сквошение и реорганизация коммитов - PullRequest
5 голосов
/ 01 апреля 2011

Я видел много постов в блоге об использовании git commit --amend, или о перебазировании на коммит-сквош.

Мне немного проще выполнить git reset до последней контрольной точки (скажем, перед всеми моими микрокоммитами 'save point'), а затем использовать интерактивное добавление, чтобы выбрать лучший порядок коммитов.

Есть ли у этого недостаток?
Мне интересно, ч / б, так как большинство блогов, которые я читаю, используют для этой цели поправку или перебазирование

Ответы [ 2 ]

6 голосов
/ 01 апреля 2011

Недостатком является то, что вы снова выбираете все отдельные файлы, чтобы снова сгруппировать их в коммиты.

Если ваши коммиты должны быть сгруппированы (без необходимости добавлять или удалять файлы в этих коммитах), тогда перебазировать --interactive проще: вы рассуждаете в терминах набора подтвержденных файлов.
На самом деле, с правильными комментариями к фиксации, rebase --interactive --autosquash может сделать переупорядочение за вас.

Если ваши коммиты являются просто промежуточной точкой сохранения, не задумываясь, как их состав в терминах набора файлов, то ваше решение адекватно.

3 голосов
/ 01 апреля 2011

Чтобы добавить ответ на VonC, это также зависит от того, сколько коммитов у вас тоже есть.

Чаще всего со мной происходит что-то вроде этого:

  • Работа над A, коммит
  • Работа над B, коммит
  • О нет!Я пропустил что-то важное в A, исправление коммита для A

С интерактивным перебазированием тривиально переупорядочить, а затем раздавить коррекцию в исходный коммит для A.

Другой пример:когда я просто хочу перефразировать сообщение коммита.

Еще один пример - когда у меня есть что-то вроде

A-------------------master
 \
  B-----C-----D-----branch

, и я хочу включить C & D, но не Б в мастер.Я могу использовать rebase для изменения порядка моих ветвлений в C, D, B, затем git checkout master и git merge D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...