Как я могу объединить два старых коммита в один? - PullRequest
0 голосов
/ 19 мая 2018

Представьте, что у меня есть три последних коммита:

fwr5678 most recent commit
46545ac fix for old commit
3c337c1 old commit message

Я хочу переписать свою историю, чтобы два старших (46545ac и 3c337c1) были объединены в один и тот же коммит.Я хочу, чтобы моя история выглядела как

fwr5678 most recent commit
3c337c1 fix for old commit + old commit message

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

Самый простой способ:

git rebase --interactive HEAD~3

Затем введите:

pick   3c337c1 old commit message
squash 46545ac fix for old commit
pick   fwr5678 most recent commit

Наконец, появится другое приглашение с вопросом, как объединить сообщения фиксации.Просто напишите:

fix for old commit + old commit message

Очевидно, что применяются все стандартные высказывания git.(например, «Не переписывать public history.»)

0 голосов
/ 19 мая 2018

Я не думаю, что это возможно сделать в Git, по замыслу.

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

В любом случае, я предполагаю, что вы уже отправили эту историю на удаленный сервер, поскольку вы хотите сохранить идентификатор верхнего коммита таким же, и этого делать не следует;Это испортит репо других людей.

С другой стороны, если вы не нажали, просто сделайте сквош .

...Одним из наиболее широко используемых является способность сдавливать коммитов.Для этого нужно взять меньшие коммиты и объединить их в более крупные, что может быть полезно, если вы завершаете дневную работу или просто хотите упаковать изменения по-другому.

Словоосторожно: Делайте это только с коммитами, которые не были переданы во внешний репозиторий.Если другие основывают работу на коммитах, которые вы собираетесь удалить, может возникнуть множество конфликтов.Только не переписывайте свою историю, если она была передана другим.

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