在我们的项目中,我正在研究core-update
分支。一位同事,当然不耐烦地阅读我的文档并测试我们解决方案的依赖项更新,触发了一个拉取请求并立即使用Visual Studio Tools合并它。
现在,有我的git状态/历史/状态:
事实是:如果我做git pull
,它会创建一个合并提交我猜。 如何简单地“获取更改”并移动我的主人头以适应原点/主人?我是Git中的新手并且不想创建无用的合并提交以在Master内部合并远程主人。
答案 0 :(得分:3)
git pull
会做你需要的(假设你当前的分支是master
)。
在您的情况下,没有任何理由创建合并提交。当合并的两个分支发生分歧时,将创建合并提交。您的本地master
分支是origin/master
后面的3个提交,但它没有提前。
master
上的所有内容都已存在于origin/master
;这就是为什么git pull
(或git merge origin/master
)会将master
分支快进到origin/master
指向的提交的原因。
答案 1 :(得分:2)
您只需要在git merge origin/master
分支上执行master
。
这将执行快进合并,并将主分支指针更新为origin/master
指向的提交。
FF合并:
因为您合并的分支修补程序指向了提交C4 直接在你正在进行的提交C2之前,Git只是移动了 指针向前。换句话说,当你尝试合并一个时 提交可以通过遵循第一个提交的提交 提交的历史,Git通过向前移动指针简化了事情 因为合并在一起没有不同的工作 - 这就是所谓的 一个“快进”。
答案 2 :(得分:2)
如果您在master
,请执行以下操作:
$ git merge origin/master
在这种情况下,它会快进master
分支,因为它是origin/master
的直接祖先。
如果您希望防止在master
与origin/master
不同的情况下意外创建合并提交,您可以使用--ff-only
选项:
$ git merge --ff-only origin/master
答案 3 :(得分:1)
来自https://www.git-scm.com/docs/git-pull
--ff
When the merge resolves as a fast-forward, only update the branch pointer,
without creating a merge commit. This is the default behavior.
所以默认情况下(除非你的git配置设置不同的默认值),不会有合并提交,运行git pull
。