Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 删除从特定分支合并的所有提交_Git - Fatal编程技术网

Git 删除从特定分支合并的所有提交

Git 删除从特定分支合并的所有提交,git,Git,我已经在一个分支上构建了一个特性(我们称之为“特性1”),我已经多次将它合并到我的主分支(“主分支”)中。我间歇性地将其他功能分支合并到master中,因此我从“feature1”到“master”的合并提交在上周的其他提交中有点分散 我想做的是: 从“feature1”->“master”中删除所有合并,就好像它们从未发生过一样。所有来自其他分支机构的其他工作,我想在“大师”中保持原样 是否有方法删除仅来自特定源的提交?i、 e.仅“feature1”分支?如果这是您只需要做一次的事情,并且合

我已经在一个分支上构建了一个特性(我们称之为“特性1”),我已经多次将它合并到我的主分支(“主分支”)中。我间歇性地将其他功能分支合并到master中,因此我从“feature1”到“master”的合并提交在上周的其他提交中有点分散

我想做的是: 从“feature1”->“master”中删除所有合并,就好像它们从未发生过一样。所有来自其他分支机构的其他工作,我想在“大师”中保持原样


是否有方法删除仅来自特定源的提交?i、 e.仅“feature1”分支?

如果这是您只需要做一次的事情,并且合并的数量是可管理的,那么您可以这样做:

git rebase -i <sha1 of master before I started merging evil branch in>
git-rebase-i
并手动编辑出不需要的合并提交

我相信有一种自动化程度更高的方法可以使用
过滤器分支
这样做,但是如果这是一次性的,那么使用rebase就可以更快地完成工作