Если я правильно понимаю, я могу просто использовать редактор по умолчанию и изменить pick
на squash
?
Не совсем, так как есть коммиты для ISSUE-018
междусовершает за ISSUE-006
.Коммиты сводятся к предыдущему коммиту, поэтому вам также нужно будет переупорядочить коммиты в вашем редакторе, чтобы переместить все коммиты на ISSUE-018
в конец или, возможно, в начало.
Кроме того,первый коммит для ISSUE-006
должен быть pick
ed, а не squash
ed.
Например:
pick 5796b58 ISSUE-006: Fix case 1
squash 4d836b2 ISSUE-006: Fix case 2
squash cae225b ISSUE-006: Bump version
squash 0006f82 ISSUE-006: Fix case 3
squash 98263c2 ISSUE-006: Bump version
squash 0e720f9 ISSUE-006: Bump version
squash bc66908 ISSUE-006: Remove comments
squash 49930b9 ISSUE-006: Proper encoding
squash 8f1196e ISSUE-006: Add tests
squash 2bcbfef ISSUE-006: Bump version
pick 8bcc4d4 ISSUE-018 Blahblahblah
pick 6b18711 ISSUE-018 minor changes
pick 0924c16 ISSUE-018 Blahblahblah
Обратите внимание, что простое изменение порядка коммитов, как это, может вызвать конфликты, некоторые изкоторый может быть болезненным, чтобы решить.В будущем, если вы создадите новую ветвь для каждой проблемы, вы можете избавить себя от головной боли.
Конечно, слияние или изменение этих ветвей также может привести к конфликтам.Но вы не должны получать ничего, если вы просто подавляете коммиты ветви без переупорядочения.git merge
также включает флаг --squash
для упрощения этого рабочего процесса во время слияния.
Еще одно преимущество хранения ваших коммитов в отдельных ветвях заключается в том, что это упрощает отправку запросов на слияние / извлечение.Вытягивающие запросы и слияния работают одновременно между филиалами: вы не можете создать PR с вашей текущей веткой, который не включает изменения для обеих проблем.
Я хотел бы сделать это, потому что я хотел бымой запрос на удаление должен быть чистым и иметь только один коммит.
Чистота субъективна, и во многих случаях несколько гранулярных коммитов могут быть более ясными и более простыми для анализа, чем один большой коммит.Лучшее руководство - следовать рекомендациям проекта, в который вы вносите свой вклад, поэтому ваши вклады соответствуют остальной части проекта.
Редактировать: В комментарии выупомянул, что коммиты 8bcc4d4
, 6b18711
и 0924c16
(те, что для ISSUE-018
) уже существуют в целевой ветви.В этом случае вы, вероятно, захотите удалить их из этой ветви, например, выполнив что-то подобное в интерактивном ребазе:
pick 5796b58 ISSUE-006: Fix case 1
squash 4d836b2 ISSUE-006: Fix case 2
squash cae225b ISSUE-006: Bump version
squash 0006f82 ISSUE-006: Fix case 3
squash 98263c2 ISSUE-006: Bump version
squash 0e720f9 ISSUE-006: Bump version
squash bc66908 ISSUE-006: Remove comments
squash 49930b9 ISSUE-006: Proper encoding
squash 8f1196e ISSUE-006: Add tests
squash 2bcbfef ISSUE-006: Bump version