2015-04-25 46 views
5

我在git repo中有一个非常过时的master分支。我所有的工作都在另一个分支完成。将两者合并的最佳方式是什么?我不在乎任何东西,它是过时的方式。由于在git中用另一个分支覆盖所有东西

+0

'git checkout master && git pull && git merge '不接受? – Makoto

回答

8

如果你是罚款失去你的主分支的历史,你只是让master指向您当前分支的头部(你不“覆盖” master - 分公司 - 本身):

git checkout yourotherbranch 
git branch -D master 
git checkout -b master 

当然,如果你有一个远程克隆,你接下来要

git push -f origin master 

诺塔好处:此专门适用于更换整个你的master分支,并抛弃旧的master作为标题暗示。 否则,你应该罚款git merge master --strategy=ours

+1

感谢您承认替代方案 - 我会想象合并会很好,但如果他们想要替换整个历史,那完全是另一回事。 – Makoto

3

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

git checkout dev 
git merge --strategy=ours master 
git checkout master 
git merge dev 

合并选项--strategy=ours是指用来取代偏科quote)的旧的发展历史。

1

一个完整的覆盖不合并其他内容,它放弃它。

git checkout -B master anotherbranch 

这比删除并重新创建保留分支设置和reflogs更有优势。

如果在您的历史记录中保留一些行政要求来保留无价值的提交,请按照git merge -s ours [email protected]{1}进行操作。我更喜欢这个序列,因为它会生成一个不寻常的合并信息,它会提醒扫描--oneline日志合并是不寻常的。

相关问题