在GIT中如何通过完全覆盖主分支将开发分支合并到主分支?

时间:2016-08-09 13:32:52

标签: git github merge

我的主副本在2年前检查过以前的文件。我的开发部门是最新的。所以我想用开发分支更新我的主分支。

我试过了 git checkout master git merge -X他们的开发

但它给出了一个错误“我们无法合并的东西”

在Git网站上,当我尝试创建一个新的拉取请求时,它显示如下“没有什么可比较的。 master和master-clean是完全不同的提交历史。“

您的意思是Origin / Development吗?

3 个答案:

答案 0 :(得分:4)

因此,收集所有评论和OP的信息,你就是这种情况:

  • 一个远程(github)存储库,其中包含一个2年前未使用的master分支和一个当前development分支。我们称这个存储库为origin
  • 您希望完全摆脱远程master并将其替换为development分支。
  • 我假设您的本地工作存储库与origin保持同步,即您最近在development内提交了所有更改的内容。

所以我建议这个程序:

git checkout development ; git pull        # just in case
git branch master development -f
git checkout master
git push origin master -f

这将:

  • 将您的本地development分支与远程分支同步,以防万一。在此操作之后,它们应该完全相同。 git status应该清楚地告诉你。
  • 然后将master设置为在本地指向与development相同的提交。
  • 然后你结帐并将master推到遥控器,覆盖之前的任何内容。

在此之后,developmentmasterorigin/developmentorigin/master都指向相同的提交,这是您development之前的任何提交。

答案 1 :(得分:0)

您可以完全删除主分支:git branch -D master

然后从您的开发分支重新创建它:git checkout -b master development

答案 2 :(得分:0)

抛出当前的master并使用dev分支?

git push origin dev:master --force

这将使用开发分支覆盖远程控制器上的分支...

为什么你会这样做 - 这会破坏在代码库中工作的其他人。