删除功能分支后,从master删除git commit

时间:2020-05-27 13:56:06

标签: git github

如何从master分支中删除提交,而该提交是从功能分支中合并的?
最重要的是,我的本地和远程分支都被删除了。

我只有一个master分支,该分支具有从我的feature分支推送的所有提交。

--- o --- o来源/功能!!此功能分支已在本地和远程删除!!
\
---- o ----●------>来源/主控

如果我已经删除了本地和远程功能分支,是否可以从上图中删除●?

1 个答案:

答案 0 :(得分:1)

●是将分支引入主节点的合并提交。摆脱这种承诺可能很复杂,具体取决于几个因素。您将需要重新整理来自origin/feature的提交,并将它们替换为origin/master上的●。与此有关的一件事是您正在更改历史记录,如果还有其他人从origin进行更改,这将引起很多问题,因为您需要将更改强制推向origin(除非您是唯一访问远程分支的人。

根据●之后的提交次数,这也可能很困难。

如果要执行此操作,则需要找到origin/featureorigin/master转移过来的提交。由于该分支已删除,因此您需要浏览该图。找到该提交后,请注意哈希值。并运行git rebase -i <sha of the diverging commit.,这应该为您提供自那时以来发生的所有提交的列表。您应该能够重新排列它们,这将消除您的问题提交。

当git重新应用来自origin/feature的提交时,执行这些步骤可能会导致大量重复解决冲突。它还将导致它们发生更改,您将是这些更改的提交者,并且iirc还将更改提交日期。

我不建议为此提交执行此操作。但是为了防止这种情况的发生,当您将来希望引入功能分支时。在master上执行git rebase -i <feature branch>,而不是git merge。这将阻止创建新的提交。

相关问题