手动合并后人为地使一个提交指向另一个提交?
Artificially make one commit point to another one after manual merge?
当时我处于这样的git状态:
在git checkout outer
之后:
* 2df9c6b (HEAD -> outer) Ready for merging
* 161c98f Working on new stuff..
* faec47b Welcome to branch `outer`
* d2166d0 last common commit
...
在git checkout master
之后:
* 82c6303 (HEAD -> master) Go on doing stuff
* d2166d0 last common commit
* ...
在运行git merge outer
没有冲突之后,我得出了一些东西
喜欢:
* 6ebd696 (HEAD -> master) Merge branch 'outer' into master
|\
| * 2df9c6b (outer) Ready for merging
* | 82c6303 Go on doing stuff
| * 161c98f Working on new stuff..
| * faec47b Welcome to branch `outer`
|/
* d2166d0 last common commit
...
不过。自动合并结果不是我真正想要的
有。所以我 运行 git reset 82c6303 --hard
重新开始:
git merge outer --no-commit
... fixing stuff, merging on my own ..
git add *
git commit -m "Merged branch 'outer' into master"
我现在拥有的是:
* 3d1250b (HEAD -> master) Merge branch 'outer' into master
* 82c6303 Go on doing stuff
* d2166d0 last common commit
* ...
即:提交 3d1250b
就像我希望的那样,但它并不指向
2df9c6b
了。我怎样才能让它指向 2df9c6b
以使其成为
清楚是怎么回事?它甚至意味着什么吗?
所以除非你在 git merge outer --no-commit
和 git commit -m "Merged branch 'outer' into master"
之间做了一些奇怪的事情,否则我不知道为什么你的提交没有被记录为合并提交(即为什么它没有两个 parents).但是,假设 3d1250b
在合并后确实包含您希望的快照,下面将进行 "empty" 提交,指向 3d1250b
和 2df9c6b
,这是"correct" 历史记录:git merge outer --strategy ours
。
当时我处于这样的git状态:
在git checkout outer
之后:
* 2df9c6b (HEAD -> outer) Ready for merging
* 161c98f Working on new stuff..
* faec47b Welcome to branch `outer`
* d2166d0 last common commit
...
在git checkout master
之后:
* 82c6303 (HEAD -> master) Go on doing stuff
* d2166d0 last common commit
* ...
在运行git merge outer
没有冲突之后,我得出了一些东西
喜欢:
* 6ebd696 (HEAD -> master) Merge branch 'outer' into master
|\
| * 2df9c6b (outer) Ready for merging
* | 82c6303 Go on doing stuff
| * 161c98f Working on new stuff..
| * faec47b Welcome to branch `outer`
|/
* d2166d0 last common commit
...
不过。自动合并结果不是我真正想要的
有。所以我 运行 git reset 82c6303 --hard
重新开始:
git merge outer --no-commit
... fixing stuff, merging on my own ..
git add *
git commit -m "Merged branch 'outer' into master"
我现在拥有的是:
* 3d1250b (HEAD -> master) Merge branch 'outer' into master
* 82c6303 Go on doing stuff
* d2166d0 last common commit
* ...
即:提交 3d1250b
就像我希望的那样,但它并不指向
2df9c6b
了。我怎样才能让它指向 2df9c6b
以使其成为
清楚是怎么回事?它甚至意味着什么吗?
所以除非你在 git merge outer --no-commit
和 git commit -m "Merged branch 'outer' into master"
之间做了一些奇怪的事情,否则我不知道为什么你的提交没有被记录为合并提交(即为什么它没有两个 parents).但是,假设 3d1250b
在合并后确实包含您希望的快照,下面将进行 "empty" 提交,指向 3d1250b
和 2df9c6b
,这是"correct" 历史记录:git merge outer --strategy ours
。