Подтвердить что ты не робот

Gerrit: объединить несколько коммитов в одно "изменение"

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

4b9b3361

Ответ 1

Нет, Gerrit в настоящее время не поддерживает пакетную фиксацию в одном обзоре. Однако есть еще пара вариантов.

В $DAYJOB моя команда использует ветки функций для больших изменений. Меньшие коммиты рассматриваются/объединены в ветки свойств отдельно, но ветвь функции объединяется только тогда, когда все находится в хорошем месте, и все разработчики довольны.

Gerrit также поддерживает ветки темы - это удобный способ группировки связанных коммитов. Они кратко обсуждаются в documentation. Эти коммиты по-прежнему должны быть пересмотрены/объединены индивидуально, но их можно быстро сгруппировать в веб-интерфейсе.

Ответ 2

Одна вещь, которую вы можете сделать с сквошем, слить на временную ветку, а затем опубликовать это изменение для просмотра.

git checkout -b feature
git commit -m "start feature"
...
git commit -m "finish feature"
git checkout -b feature-review master
git merge --squash feature
git commit

Теперь ваша ветвь feature-review будет содержать тот же diff относительно master, что и feature, но только с одним фиксатором.

Ответ 3

Если вам нужно обновить уже отправленные запросы на просмотр, вы можете использовать исправления:

git commit --amend -C HEAD

а затем нажмите для последующего просмотра.

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