删除git中的大量重复提交和引用

删除git中的大量重复提交和引用,git,history,rebase,Git,History,Rebase,我有以下情况: A---B--- ... ---E---------------------------. \ A---B--- ... ---E---F---G---H---I--- ... ---N master 我想从历史记录中删除重复提交并删除此错误引用 A---B--- ... ---E---F---G---H---I--- ... ---N mast

我有以下情况:

A---B--- ... ---E---------------------------.
                                             \
                  A---B--- ... ---E---F---G---H---I--- ... ---N   master
我想从历史记录中删除重复提交并删除此错误引用

A---B--- ... ---E---F---G---H---I--- ... ---N   master
我已经用git rebase-I尝试过了,并删除了重复的提交,但这会再次重复提交,并导致大量合并冲突。

您可以尝试:

git checkout -b temp E git cherry-pick F..N git branch -D master git branch -m temp master git签出-b temp E 吉特樱桃皮克F..N git分支-D主 git分支-m临时主控 如果您不明白自己在做什么,我建议您阅读所有相关命令的手册页。git手册页非常漂亮且易于访问。

您可以尝试:

git checkout -b temp E git cherry-pick F..N git branch -D master git branch -m temp master git签出-b temp E 吉特樱桃皮克F..N git分支-D主 git分支-m临时主控
如果您不明白自己在做什么,我建议您阅读所有相关命令的手册页。git手册页非常漂亮且易于访问。

W,这些行看起来真的很平滑:p+1你能解释一下“rebase使它变得更糟”是什么意思吗?如果你想按你说的做,你必须重写所有内容,包括HI J(即使你不改变内容,他们也必须改变他们的父母). 你没办法逃脱。我不知道你是怎么做到这一点的。我已经纠正了这些图表,谢谢。那些线条看起来真的很平滑:P+1你能解释一下“再基会让事情变得更糟”是什么意思吗?如果你想照你说的做,你必须重写E之后的一切,包括H I J(即使你不改变他们的内容,他们也必须改变他们的父母)。你无法逃避。我不知道你是怎么做到这一点的。我已经更正了图表,谢谢。我在图表中犯了一些错误。问题是,有很多提交,不仅是
F G H I J
,而且cherry pick不能处理一系列提交。你可以cherry pick选择一系列提交。请参阅:我犯了一些错误在图中显示。问题是,有很多提交,不仅
F G H I J
而且cherry pick无法处理一系列提交。您可以cherry pick选择一系列提交。请参阅: