Как я могу сплющить слияния в линейную историю? - PullRequest
8 голосов
/ 06 февраля 2012

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

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

Ответы [ 3 ]

5 голосов
/ 07 февраля 2012

То, что вы ищете, это интерактивная перебазировка .

Вы можете перебазировать против мастера через git rebase -i master.Вы должны увидеть что-то вроде

pick ba6b4b7 Commit messages here
pick 744ea3b Another commit message
pick 33539d5 Commits all around!

Затем вы можете поменять «пики» после первого на «сквош».Это раздавит их всех на верхний коммит.Вы также можете изменить верхний «pick» на «fixup», чтобы изменить его сообщение о коммите.

3 голосов
/ 06 февраля 2012

Git rebase - это то, что вам нужно.

0 голосов
/ 18 января 2016

Кроме фактической перебазировки, вы также можете точно настроить свой запрос.git log --topo-order $head будет для каждого слияния перечислять все содержимое объединенной ветви сразу после коммита слияния.Это выглядело бы точно, как если бы вы перебазировали эту ветку.

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