git - git merge origin/master 是做什么的?

标签 git git-merge

使用 git fetch 从远程获取之后,我们需要使用类似的东西

git merge origin/master

我想知道这个命令是否也同时执行git commitorigin/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/

相关文章:

git - 检查 git 中是否存在某些代码

git - "Merge remote-tracking branch ' xxx/master'"是否为 Pull Request 带来了麻烦?

git - 如何 git merge ,但不使用最新的提交

git - 使用 Git 获取 merge 代码 "right"

git - 如何从另一个分支(开发)更新我的工作 Git 分支?

Git - 同事在解决冲突时以某种方式覆盖了我的整个提交

git - SSL证书: self signed certificate when cloning repo from github?如何解决

ruby-on-rails - 如何重置我的 Git/Rails 3.1 项目中的所有 Heroku

git - 从命令行覆盖 .gitattributes

node.js - Node.js 中的 “bash read command”