Как сохранить историю ясно в git - PullRequest
2 голосов
/ 06 марта 2020

У меня следующая ситуация:

  • У меня есть 2 ветви: X и Y;
  • Через некоторое время принято решение объединить их;
  • После объединения Y в X, я решил добавить еще один коммит в X;
  • Теперь в X последние 2 коммита: 1) коммит слияния, 2) второй коммит, который я решил добавить;

Вопрос в том, как объединить эти 2 последних коммита?

Я использовал git rebase -i HEAD~1, но не вижу коммит слияния. Какая альтернатива? Я делаю это для прояснения истории.

1 Ответ

1 голос
/ 06 марта 2020

Если то, что вы хотели бы сделать, это вернуть слияние и применить X до слияния Y:

git checkout X~2 # go to revision before merge
git cherry-pick X # apply the revision at the tip of X
git merge Y -m "Merging Y"
# if you like the results
git branch -f X
git checkout X

PS Принимая во внимание беспокойство @ 0andriy, приятно заметить, что это переписывает историю. Если вы уже отправили то, что у вас есть на X, в репозиторий, где другие люди, возможно, уже начали играть с ним, считается грубым , чтобы переписать историю. Если, с другой стороны, это то, что вы нигде не толкали, то смело переписывайте историю.

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