x commits behind master,分支上没有merge master怎么办

x commits behind master, how to do without merge master on branch

我正在与 git 一起维护我的代码,现在我基本上有 3 个分支:

很久以前我在 master 上有一个意外的合并,我通过接口恢复了(仅在 master 分支上),但现在我的 develop 分支总是落后 master 10 个提交,但我不能合并master 进入 develop 因为它会导致代码回归。

如何在开发时重置这些提交?有没有办法“取消”主人的这些提交?或者根据开发的当前状态重置master的方法?

谢谢

这里可能存在更大的问题(因为你有一个恢复的合并,如果将来你想将这些提交的更改重新合并到 master 中,这将成为阻碍)。 =27=]

就是说,最简单的 方法可以防止 git 说你落后于 master,而不影响 develop 的内容] 分支是使用 ours 合并策略进行合并(这是 而不是 与可以给默认合并策略的 ours 选项混淆)。

git checkout develop
git merge -s ours master

理论上,这告诉 git develop 并不是 真的 落后于 mastermaster 只是包含永远不会与 develop.

相关的提交

这样做的缺点是它“隐藏”了合并中的更改。一些命令(可能还有一些开发人员)假设如果合并提交的父项可以使用默认合并策略在没有冲突的情况下合并,那么就会发生这种情况 - 所以合并,就像这个一样,打破了这个假设有时被称为“邪恶的”合并”。

另一种选择是继续将 master 正常合并到 develop,然后恢复 合并。

git checkout develop
git merge master
git revert -m1 HEAD

我知道这听起来像是让我提出的第一个问题变得更糟,但在这种情况下,两个错误可能成为一个正确的情况很少见。这里的优点是(粗略地说)在将来再次将 develop 历史与 master 合并时,git 将在 develop 上看到恢复(重新声明)的变化)在 之后发生 master 的恢复 - 所以合并会像你期望的那样。而且你没有任何“邪恶”(或其他奇怪的)合并。