git合并分支覆盖目标

git合并分支覆盖目标,git,branching-and-merging,git-merge,Git,Branching And Merging,Git Merge,我的存储库有一个主库和dev分支 此时,我希望将

我的存储库有一个
主库
dev
分支

此时,我希望将
合并,或者更好,不是合并,而是将
分支的内容全部替换为
dev

有可能吗?您将如何使用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      
这是一个“合并”与“他们的”战略,这是

但您可以通过数字模拟它,如“”

我喜欢的是通过创建一个额外的分支:

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

假设您从
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

谢谢,我需要从我的开发分支开始做这个,对吗?@ghiboz是的。我已经编辑了答案。在克隆上进行测试。谢谢,我需要从我的开发分支开始进行测试,对吗?@ghiboz是的。我已经编辑了答案。在克隆人身上进行测试。很抱歉投了反对票,也很抱歉有两票将该问题作为离题题结束。别担心:这完全是一个关于堆栈溢出的话题。很抱歉投了反对票,也很抱歉投了两票,两票都认为这个问题是离题的。别担心:这完全是关于堆栈溢出的主题。