[英]git merge branch overwriting destination
我的存储库有一个master
和dev
分支。
这时我希望将dev
与master
合并,或者更好,不是合并,而是用dev
替换 master
分支的内容 。
是否可能,以及如何使用git命令执行此操作?
这是与“他们的”策略的“合并”,这种策略本身并不存在 。
但你可以通过一种方式模拟它,就像在“ git命令中使一个分支像另一个分支 ”
我喜欢的是通过创建一个额外的分支:
git checkout dev
git checkout -b tmp
git merge -s ours master # ignoring all changes from master
git checkout master
git merge tmp # fast-forward master to tmp HEAD
git branch -D tmp
假设您是从master
开始的...稍后您创建了一个dev
分支(来自master
HEAD
或以前的master
提交 )。
您还可以执行以下操作。
# find common ancestor
git merge-base master dev
# This will give you SHA-1 of ancestor like this: `4de51ba41fba357ac9ce63f098451cd1fc2dacbe`
# A hard reset master to this commit
git checkout master
git reset --hard 4de51ba41f
git rebase master dev
# After successful completion you will find yourself checked out on `dev`
# checkout master again and merge dev to get your final result
git checkout master
git merge dev
# Now your master will be same as dev
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.