例如,我有分支dev和master。现在它们在代码和某些二进制文件上有所不同。我想使分支dev的最后一次提交与master分支的最后一次提交完全相同。怎么样?
我的方法是:
git diff dev master --binary > 1.patch
git checkout dev
git apply 1.patch
还有其他简单的方法吗?
答案 0 :(得分:2)
分支只是指针,您可以为它们设置任何引用
git branch -f dev master
这意味着他们之后将拥有完全相同的历史记录。 (作为旁注,在移动该分支之前,请先签出另一个分支,否则git会抱怨)
再次,如果您需要保留dev
之外的master
的所有内容,这不是不是的方法。 ElpieKay的第二个解决方案将像魅力一样发挥作用。
答案 1 :(得分:2)
如果您不介意丢失dev
自己的历史记录,
git checkout dev
git reset master --hard
它使dev
指向master
的头部。
如果您想保留dev
的历史记录,
git checkout dev
git merge $(git commit-tree -p HEAD -m "xxx" master^{tree})
# edit the commit message
git commit --amend
它将在dev
上创建一个提交,并且该提交与master
具有相同的代码。