【问题标题】:Git merge "develop", replace all with the "develop" version [duplicate]Git合并“develop”,全部替换为“develop”版本[重复]
【发布时间】:2021-04-20 11:14:59
【问题描述】:

我有一个 master(主)分支和一个带有另一个代码的 develop 分支。

我们意识到master 中的所有代码都已过时,应该完全替换develop 分支(干净的develop,没有任何额外的master 文件,任何合并)。

master 应保持主(生产)分支

由于冲突,自动合并失败。

编辑:在 Eric 的建议下,我做了以下操作

git checkout master
git reset --hard develop
git push --force

并获得:

致命:您当前不在分支上。推动历史领先 现在到当前(分离的 HEAD)状态,使用

git push origin HEAD:<name-of-remote-branch>

还有这个

【问题讨论】:

  • 为什么会失败?在哪些文件上?您是否尝试过手动修复合并冲突?有时会发生这种情况。
  • 我不需要解决任何冲突,我只需要将我的master替换为develop版本。

标签: git merge gitlab


【解决方案1】:
  1. 结帐大师 (git checkout master)
  2. 重置为开发 (git reset --hard develop)
  3. 强制推送 (git push --force)

这告诉 git 让master 指向与develop 相同的提交。您需要强制推送,因为您正在更改 master 的历史记录。在这些步骤之后,您的master 将与develop 相同。

不过要小心。我会记录 developmaster 的当前提交 ID,以便能够回到以前的状态,以防结果不是你想要的。

【讨论】:

  • 用上面的命令结果更新了 OP
  • 现在我不知道我应该做git push origin HEAD:develop还是HEAD:master
  • 另外,我需要主分支仍然是主分支,而不是开发
  • 它仍然是主分支。在mastergit push --force origin masterto 上同时使origin/master 与您本地的master 相同
  • 啊,我明白你的问题了。在推送之前,再做一次git checkout master
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 2011-09-18
  • 2021-02-05
  • 2023-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多