【发布时间】:2016-05-18 12:25:59
【问题描述】:
我就是这样的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
* ...
即:commit 3d1250b 就像我想要的那样,但它并不指向
2df9c6b 了。我怎样才能让它指向 2df9c6b 以使它
清楚发生了什么?它甚至意味着什么?
【问题讨论】:
-
3d1250b指向哪些提交? -
@DavidDeutsch
3d1250b指向82c6303,而6ebd696曾经指向82c6303和2df9c6b。似乎“合并提交”是一个特殊的提交.. -
3d1250b确实也应该指向这两个提交;你确定你没有做git merge --abort或git merge outer --no-commit和git commit之间的任何事情吗? -
@DavidDeutsch 嗯..只有
vim,git log,git diff我想..你认为我可能只是以某种方式破坏了我的合并操作吗?
标签: git merge branch git-commit