我做了以下步骤:
git checkout master
git pull origin master
git merge branchB
它做了更新:
git merge queryclassintegration
Updating f2318bc..c9b732a
Fast-forward
build/test.sh | 5 -
unit-test/test | 1110 ------------------------
include/io.hpp | 15 ++
3 files changed, 15 insertions(+), 1115 deletions(-)
delete mode 100755 build/test.sh
delete mode 100644 unit-test/test
create mode 100644 include/io.hpp
当我这样做时
git push origin master
显示了这个,我假设它注册了合并:
Total 0 (delta 0), reused 0 (delta 0)
To https://[email protected]/xyz/bproject.git
d8818bc..m9b231a master -> master
但是后来我检查了仓库,并没有注册合并(没有合并的迹象)。如果我再次推送:
git push origin master
它说:
Everything up-to-date
您会在该合并中注意到短语“快进”。由于您合并的分支所指向的提交位于您所进行的提交的直接上游,因此Git只是将指针向前移动。换句话说,当您尝试将一个提交与可以通过遵循第一个提交的历史记录到达的提交合并时,Git通过向前移动指针来简化操作,因为没有分歧的工作可以合并在一起,这称为“快进。”
资料来源:Git手册-基本分支和合并
如果不想快速合并并创建合并提交,则可以使用该--no-ff
选项。
$ git merge --no-ff branch
如果您不希望合并提交,则可以使用仅快进选项--ff-only
。如果Git无法快速合并分支,则会出错。您可以然后决定要做什么。
git merge --ff-only branch
在以下问题中,还有更多答案解释快进:git merge和git merge --no-ff有什么区别?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句