与原始分支相比,我的主分支迟到了:我该怎么办?

时间:2017-01-13 14:07:08

标签: git

在我们的项目中,我正在研究core-update分支。一位同事,当然不耐烦地阅读我的文档并测试我们解决方案的依赖项更新,触发了一个拉取请求并立即使用Visual Studio Tools合并它。

现在,有我的git状态/历史/状态:

enter image description here

事实是:如果我做git pull,它会创建一个合并提交我猜。 如何简单地“获取更改”并移动我的主人头以适应原点/主人?我是Git中的新手并且不想创建无用的合并提交以在Master内部合并远程主人。

4 个答案:

答案 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合并:

Basic Branching and Merging

  

因为您合并的分支修补程序指向了提交C4   直接在你正在进行的提交C2之前,Git只是移动了   指针向前。换句话说,当你尝试合并一个时   提交可以通过遵循第一个提交的提交   提交的历史,Git通过向前移动指针简化了事情   因为合并在一起没有不同的工作 - 这就是所谓的   一个“快进”。

答案 2 :(得分:2)

如果您在master,请执行以下操作:

$ git merge origin/master

在这种情况下,它会快进master分支,因为它是origin/master的直接祖先。

如果您希望防止在masterorigin/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