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

Vis*_*N B 2 git merge github

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

我试过 git checkout master git merge -X theirs dev

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

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

你的意思是起源/发展?

Ano*_*noE 6

因此,从您的所有评论和 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
Run Code Online (Sandbox Code Playgroud)

这会:

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

在此之后,development, master, origin/development,origin/master都指向同一个提交,这就是你development之前的提交。