用git中的另一个分支覆盖master中的所有内容

Zur*_*iar 8 git

master在git存储库中有一个非常过时的分支.

我的所有工作都在另一个分支完成.

合并两者的最佳方法是什么?

我不在乎任何事情master,它已经过时了.

Tob*_*san 9

如果您没有丢失主分支的历史记录,您只需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.


Яoi*_*ois 6

让我们假设你的工作在一个叫做的分支dev:

git checkout dev 
git merge --strategy=ours master
git checkout master 
git merge dev
Run Code Online (Sandbox Code Playgroud)

合并选项--strategy=ours 旨在用于取代侧支的旧开发历史(引用).


Aze*_*eli 6

很多问题都通过git merge strategy=ours解决方案得到了回答,但我认为它没有抓住问题的要点。我将这个问题解释为“我没有遵循良好的实践,基本上大师是无用的,我不想从大师那里得到任何东西”。常见于个人项目。

git push -f origin branch_ive_been_working_for_months:master用远程分支完全替换您的远程主控。然后,git pull origin master在本地检查master之后就是直接回答IMO问题的解决方案。