x commits behind master,分支上没有merge master怎么办
x commits behind master, how to do without merge master on branch
我正在与 git 一起维护我的代码,现在我基本上有 3 个分支:
master(受保护,无法直接编辑)
发展
发布版本(可以是 v1、v2 等)
很久以前我在 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
并不是 真的 落后于 master
,master
只是包含永远不会与 develop
.
相关的提交
这样做的缺点是它“隐藏”了合并中的更改。一些命令(可能还有一些开发人员)假设如果合并提交的父项可以使用默认合并策略在没有冲突的情况下合并,那么就会发生这种情况 - 所以合并,就像这个一样,打破了这个假设有时被称为“邪恶的”合并”。
另一种选择是继续将 master
正常合并到 develop
,然后恢复 那 合并。
git checkout develop
git merge master
git revert -m1 HEAD
我知道这听起来像是让我提出的第一个问题变得更糟,但在这种情况下,两个错误可能成为一个正确的情况很少见。这里的优点是(粗略地说)在将来再次将 develop
历史与 master
合并时,git 将在 develop
上看到恢复(重新声明)的变化)在 之后发生 master
的恢复 - 所以合并会像你期望的那样。而且你没有任何“邪恶”(或其他奇怪的)合并。
我正在与 git 一起维护我的代码,现在我基本上有 3 个分支:
master(受保护,无法直接编辑)
发展
发布版本(可以是 v1、v2 等)
很久以前我在 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
并不是 真的 落后于 master
,master
只是包含永远不会与 develop
.
这样做的缺点是它“隐藏”了合并中的更改。一些命令(可能还有一些开发人员)假设如果合并提交的父项可以使用默认合并策略在没有冲突的情况下合并,那么就会发生这种情况 - 所以合并,就像这个一样,打破了这个假设有时被称为“邪恶的”合并”。
另一种选择是继续将 master
正常合并到 develop
,然后恢复 那 合并。
git checkout develop
git merge master
git revert -m1 HEAD
我知道这听起来像是让我提出的第一个问题变得更糟,但在这种情况下,两个错误可能成为一个正确的情况很少见。这里的优点是(粗略地说)在将来再次将 develop
历史与 master
合并时,git 将在 develop
上看到恢复(重新声明)的变化)在 之后发生 master
的恢复 - 所以合并会像你期望的那样。而且你没有任何“邪恶”(或其他奇怪的)合并。