我master在git存储库中有一个非常过时的分支.
我的所有工作都在另一个分支完成.
合并两者的最佳方法是什么?
我不在乎任何事情master,它已经过时了.
如果您没有丢失主分支的历史记录,您只需master指向当前分支的头部(您不要"覆盖" master- 分支 - 本身):
git checkout yourotherbranch
git branch -D master
git checkout -b master
Run Code Online (Sandbox Code Playgroud)
当然,如果你有一个远程克隆,那么你必须这样做
git push -f origin master
Run Code Online (Sandbox Code Playgroud)
Nota bene:这特别适用于更换整个master分支并将master标题与标题建议相提并论.否则,你应该没事的git merge master --strategy=ours.
让我们假设你的工作在一个叫做的分支dev:
git checkout dev
git merge --strategy=ours master
git checkout master
git merge dev
Run Code Online (Sandbox Code Playgroud)
合并选项--strategy=ours 旨在用于取代侧支的旧开发历史(引用).
很多问题都通过git merge strategy=ours解决方案得到了回答,但我认为它没有抓住问题的要点。我将这个问题解释为“我没有遵循良好的实践,基本上大师是无用的,我不想从大师那里得到任何东西”。常见于个人项目。
git push -f origin branch_ive_been_working_for_months:master用远程分支完全替换您的远程主控。然后,git pull origin master在本地检查master之后就是直接回答IMO问题的解决方案。