Git:如何用master更新分支?

时间:2015-04-24 11:52:23

标签: git

这是我的情况:

  • 我已经开始了一个新的分支(让我们称之为<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <li data-target="12">1</li> <li data-target="4">2</li> <li data-target="9">3</li> <li data-target="15">4</li> <li data-target="23">5</li> <li data-target="32">6</li> <li data-target="7">7</li> <li data-target="10">8</li> <li data-target="5">9</li> <li data-target="2">10</li>)并做了一些工作,

  • 我已将foo推送到远程

  • 需要在foo上完成某些事情,所以我切换到主人,做了修复并推送,

现在:如何使用master更新foo?因为我需要处理master,但我希望它与foo中的更改保持一致。我理解我不应该master已经发布的分支......

谢谢!

2 个答案:

答案 0 :(得分:2)

很好,你知道你不应该对已发布的分支进行重组和强制推送。

您需要将master更改为foo吗?这里最自然的事情就是做到这一点。将master的更改合并到foo

您的情况:

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

然后:

$ git checkout foo
$ git merge master

导致m中的新合并提交foo

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

从历史中可以清楚地看到你做了什么,也可能是为什么。您甚至可以在master的提交消息中m提及您需要的内容。

答案 1 :(得分:0)

master

合并foo
git checkout foo
git merge master

或者,如果其他开发人员没有使用foo并且您有权强制推送遥控器,那么您可以对其进行重新定位并强制推送它:

git checkout foo
git rebase master
git push -f remote

我坚持认为,只要您知道 nobody ,除非您计划在这些提交中工作或从这些提交开始工作,直到他们获取您的相关信息,否则对已经发布的提交进行变基和强制推销没有任何危险 - 然后发布了提交。下次您的同事从遥控器中取出时,他们会看到foo已被强制更新,仅此而已。