如何使git分支的最新代码与另一个分支相同?

时间:2019-06-28 08:04:37

标签: git

例如,我有分支dev和master。现在它们在代码和某些二进制文件上有所不同。我想使分支dev的最后一次提交与master分支的最后一次提交完全相同。怎么样?

我的方法是:

git diff dev master --binary > 1.patch
git checkout dev
git apply 1.patch

还有其他简单的方法吗?

2 个答案:

答案 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具有相同的代码。