如何在不合并的情况下用另一个分支替换Git中的分支

时间:2019-01-08 07:27:01

标签: git merge

我的仓库结构是这样的。

  • 分支'dev'-从'master'创建,并且是最新的。
  • 分支'master'-最近2年没有提交。但是很少有人在“ dev”之前提交(不需要)。

现在,我需要使“主”代码与“ dev”完全相同。我猜想,合并将导致保留对“主”的不需要的提交。有帮助吗?

2 个答案:

答案 0 :(得分:1)

您可以在master上将当前分支dev进行硬重置:

# from master
git checkout master
git reset --hard dev

但是请记住,这可能会丢弃master上对该分支唯一的任何提交。如果您对此感到担忧,请考虑从master分支作为安全预防措施。

下次您将master推到遥控器时,您可能不得不强制推:

git push --force origin master

强制推送的原因是您重写了master分支的基础,Git将不接受常规推送。

答案 1 :(得分:1)

蒂姆的答案很好,让我们为记录添加这个变体:

# from any branch
git branch -f master dev

关于丢失旧删除分支的内容的警告是相同的,备份很便宜,所以也许考虑一下:

git branch backup_old_master master
git branch -f master dev

然后master将指向dev当前指向的完全相同的提交(和历史记录),以防万一。{p}