我一直在尝试使用以下文章中描述的分支模型:
http://nvie.com/posts/a-successful-git-branching-model/- 我从主分支上新建了一个名为items的分支,并在该分支上进行了几次提交。
- 然后我回到主分支并进行了一次提交。
- 使用
git merge --no-ff
命令合并items分支,然后解决任何合并冲突。
我以为来自另一个分支的所有已合并提交将按顺序一起被引入,但事实并非如此。以下是git log
的输出:
f28e150 Merge branch 'items'
8281666 [Master] Another middle commit before merge
73d0ca9 [items] commit 2
0442978 [items] commit 1
为什么item分支的前两个提交显示在主分支之前?难道把它们和合并提交一起显示不是更有意义吗,因为那是我将所有代码合并的时候?调用图形选项:
git log --graph
以正确的顺序显示。* f28e150 Merge branch 'items'
|\
| * 73d0ca9 [items] commit 2
| * 0442978 [items] commit 1
* | 8281666 [Master] Another middle commit before merge
|/
我希望将它们合并在一起,这样就更容易让我撤销整个合并过程。
git reset
命令本身不使用这种编号系统。但是,gitrevisions
允许<identifier>~n
(例如HEAD~5
)。这遵循父链接,特别是第一个父链接。这不是git reset
的事情,而是一般目的的“按关系命名特定提交”的事情,您可以使用例如git show
查看该特定提交。在 https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html 中有更多细节。 - torek