手动合并后,人为地将一个提交点设置为另一个提交点?

时间:2016-02-08 18:16:35

标签: git merge branch git-commit

我当时处于这样一个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才能成功 清楚发生了什么?它甚至意味着什么?

1 个答案:

答案 0 :(得分:1)

因此,除非你在git merge outer --no-commitgit commit -m "Merged branch 'outer' into master"之间做了一些时髦的事情,否则我不知道为什么你的提交没有记录为合并提交(即为什么它没有两个父母)。但是,假设3d1250b在合并后确实包含了您想要的快照,以下内容将使"为空"提交指向3d1250b2df9c6b,这是"正确"历史:git merge outer --strategy ours