Git:如何使用主分支更新分支?

5
这是我的情况:
  • 我创建了一个新分支(我们称之为foo)并在上面进行了一些工作,

  • 我将foo推送到远程仓库,

  • 需要在master上进行一些操作,所以我切换到master分支,做了修复并推送了更改,

现在的问题是:如何使用master更新foo?因为我需要在foo上继续工作,但我希望它与master中的更改保持一致。我知道不应该对已发布的分支进行rebase...
谢谢!

1
为什么不直接使用 merge - Maroun
从主分支合并到分支,测试、纠正、提交,然后再从分支合并到主分支。 - cup
1
可能是从Git的主分支获取更改到分支的重复问题。 - Joe
2个回答

16

很好,你知道不应该在已发布的分支上进行rebase和force-push。

你需要将master的更改合并到foo中吗?在这种情况下,最自然的做法就是这样做。将master的更改合并到foo中。

你的情况:

o---o---o - master
     \-o---o---o - foo

那么:

$ git checkout foo
$ git merge master

导致在foo中产生一个新的合并提交m

o---o---o---------- - master
     \             \
      \-o---o---o---m - foo

从历史记录中可以清楚地看出你做了什么,可能也知道原因。在m的提交消息中甚至可以提到你从master需要什么。


0

foo 合并到 master

git checkout foo
git merge master

或者,如果foo没有被其他开发人员使用,并且您有授权在远程上强制推送,则可以对其进行变基并强制推送:
git checkout foo
git rebase master
git push -f remote

如果你知道在重新定位和强制推送已发布的提交时,除了你自己以外没有人计划在这些提交上工作或从这些提交中获取信息,那么这样做是没有危险的。下一次你的同事从远程获取时,他们将看到foo被强制更新了,就是这样。


2
你将 foo 合并到了 master 分支? - robertklep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接