使用 git fetch
从远程获取之后,我们需要使用类似的东西
git merge origin/master
我想知道这个命令是否也同时执行git commit
? origin/master
的顺序重要吗?我可以写master/original
吗?
最佳答案
git merge origin/master
可以做两件事之一(或错误)。
在第一种情况下,它创建了一个有两个父项的新提交:当前的 HEAD
和 ref origin/master
指向的提交(除非你正在做一些有趣的事情,这很可能是(指向)名为 origin
的远程分支上名为 master
的分支,尽管这完全是传统的)。
在第二种情况下,没有必要的树级 merge ,而不是创建一个新的提交,它更新当前 checkout 的引用以指向与 origin/master 指向的相同的提交
。 (这称为快进 merge ——当您通过命令行标志 merge 时,git 可以被定向到总是或从不这样做)。
它不直接调用 git commit
,这是为用户准备的更高级别(瓷器)命令。
调用 git merge master/original
将尝试将 master/original
解析为提交,这几乎肯定会(同样,除非你故意做了一些事情)< strong>不与 origin/master
相同。如果您碰巧有一个名为 master
的远程服务器,它有一个名为 original
的分支,它将创建一个新的提交,并将其作为第二个父级。
您可能会发现 git help rev-parse
有助于破译 git 如何尝试将 ref 名称或其他符号解析为提交。
关于git - git merge origin/master 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11130292/