这是我的情况:
我已经开始了一个新的分支(让我们称之为<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
已经发布的分支......
谢谢!
答案 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
已被强制更新,仅此而已。