从远程使用获取后git fetch
,我们需要使用类似的东西
git merge origin/master
我想知道这个命令是否也git commit
同时执行?顺序origin/master
重要吗?我可以写master/original
吗?
git merge origin/master
可以做两件事之一(或错误)。
在第一种情况下,它创建一个具有两个父级的新提交: currentHEAD
和 ref 指向的提交origin/master
(除非你在做一些有趣的事情,这很可能是(本地指针)命名的master
分支一个名为 的遥控器origin
,尽管这完全是传统的)。
在第二种情况下,不需要树级合并,而不是创建一个新的提交,它更新当前签出的 ref 以指向与 . 所指向的相同的提交origin/master
。(这称为快进合并——当您通过命令行标志合并时,git 可以被定向到总是或从不这样做)。
它不直接调用,这是一个针对用户git commit
的更高级别( git-parlance 中的瓷器)命令。
调用git merge master/original
将尝试解决master/original
提交,这几乎可以肯定(同样,除非你已经做了一些深思熟虑的事情)与origin/master
. 如果你碰巧有一个名为 的远程分支,它master
有一个名为 的分支original
,它将创建一个新的提交,并将其作为第二个父级。
您可能会发现git help rev-parse
有助于破译 git 如何尝试将 ref 名称或其他符号解析为提交。
这样做是将称为 origin/master 的分支合并到您当前的分支中。顺序非常重要。origin这个词是指你克隆你的仓库的地方,即仓库的起源,master这个词只是一个分支名称,但是master通常用作主分支,或者其他一些系统称之为主干分支.
根据您的开发状态,合并可能需要进行提交。如果你的历史没有偏离原点,它可以做所谓的快进——所有需要做的就是把新的历史放在你的上面。如果您的开发与原点不同,那么如果可以在没有冲突的情况下完成合并,则合并完成并在 HEAD 记录新的提交以指定合并和两个父级。
此外,如果由于冲突而无法完成合并,则会更新您的工作副本以反映存在冲突的事实,然后当您修复它们时,您手动进行记录合并的提交。