GIT: как принудительно выполнить фиксацию слияния для предка

В GIT у меня две ветки и две фиксации:

 A(master)---B(branch "topic")
  • HEAD ветки master - это фиксация A
  • HEAD ветки «topic» - это фиксация B
  • фиксация A является родителем коммита B

Я хотел бы создать коммит слияния C в ветке «тема» (у него были бы A и B в качестве родителей). (Я знаю, что это кажется странным, и что фиксация слияния будет пустой.)

 A(master)---B---C (branch "topic")
  \-------------/

Мне удалось создать эту фиксацию слияния слишком сложным способом (см. Ниже). Есть ли более простой способ создать эту фиксацию слияния?

Спасибо за ваши ответы!


Исходное состояние:

$ git init plop
Initialized empty Git repository in /tmp/plop/.git/
$ cd plop/
$ git commit -m "Initial commit (commit A)"  --allow-empty
[master (root-commit) a687d4e] Initial commit (commit A)
$ git checkout -b topic
Switched to a new branch 'topic'
$ git commit -m "Some work on my topic branch (commit B)" --allow-empty
[topic d4d1c71] Some work on my topic branch (commit B)
$ #OK, we now reached the initial state

Некоторые попытки:

$ git merge master #Does not work
Already up-to-date.
$ git merge --no-ff -s ours master #Does not work
Already up-to-date.

Есть ли более простой способ достичь следующего?

$ #Let's try another way (too complex!)
$ git checkout master
Switched to branch 'master'
$ git merge --no-ff topic
Already up-to-date!
Merge made by recursive.
$ git checkout topic
Switched to branch 'topic'
$ git merge master
Updating d4d1c71..641e7ae
Fast-forward
$ git checkout master
Switched to branch 'master'
$ git reset --hard HEAD^1
HEAD is now at a687d4e Initial commit
$ git checkout topic
Switched to branch 'topic'
$ git log #This is what I wanted to reach
commit 641e7aeb614d9b49796e8f11abd3a0290ac08b40
Merge: a687d4e d4d1c71
Author: xxx <yyy.zzz>
Date:   Sat Jul 23 12:52:41 2011 +0200

    Merge branch 'topic'

commit d4d1c71c87b94335c8852ab7675cbb663965ef7d
Author: xxx <yyy.zzz>
Date:   Sat Jul 23 12:50:11 2011 +0200

    Some work on my topic branch (commit B)

commit a687d4eb88b9f6d661122a5766dd632dd462fbaa
Author: xxx <yyy.zzz>
Date:   Sat Jul 23 12:49:52 2011 +0200

    Initial commit (commit A)
13
задан OLU 24 July 2011 в 13:48
поделиться