Git Mergin 2 старых коммитов и положить слияния в происхождение: master head - PullRequest
0 голосов
/ 09 ноября 2011

Мне нужно сделать новое слияние из 2 коммитов, и общее слияние, помещенное в заголовок origin:master.

Какой самый простой способ ??

Ответы [ 2 ]

1 голос
/ 09 ноября 2011

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

В git вы создаете слияние с помощью команды git merge <OTHER-BRANCH>, которая всегда объединит другую ветку с вашим текущим коммитом - обычно это верхушка ветки, в которой вы находитесь. Итак, в простейшей ситуации, если один из ваших коммитов находится на кончике master, а другой называется B, тогда вы можете сделать следующее:

  • Убедитесь, что вы на master с git checkout master
  • Объединить A в master с: git merge B
  • Перенесите этот результат в ветку master в хранилище origin: git push origin master

Если один из ваших коммитов не на вершине master - скажем, он называется A - тогда вы все равно можете создать коммит слияния из A и B с помощью:

git checkout A
git merge B

Однако, этот объединенный коммит не будет содержать историю master, поэтому, если вы передадите его в master в origin, это перезапишет историю master в этом хранилище, что создает проблемы, если ты сотрудничаешь. Тем не менее, если вы хотите продолжить это, вы можете «форсировать» толчок с помощью:

git push -f origin HEAD:master

... и во избежание путаницы вы, вероятно, захотите также сбросить ветку master, чтобы указать на этот коммит:

# Check that "git status" is clean, to avoid losing uncommitted work:
git status

# Create a new branch that points to where master used to be:
git branch old-master master

# Switch to the master branch:
git checkout master

# Reset the master branch to point to the merge commit you created above:
git reset --hard HEAD@{1}
0 голосов
/ 09 ноября 2011

Если вы хотите 2 конкретных коммита, git cherry-pick будет достаточно.Сделайте это из новой ветки или непосредственно с мастера, если вы решитесь (мастер обычно резервируется для того, что стабильно или выпущено - не ломайте мастер!)

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