修改未合并功能分支中所有提交的简便方法?

时间:2018-07-17 10:30:28

标签: git

是否有一种快速的方法来撤消功能分支中的所有提交(保持更改未进行阶段化),并在知道如何操作后迅速执行git add -pgit commit的一些循环以创建新的清理器历史记录可以事后改变群体吗?

因此,假设我有80个提交,这是一个巨大的功能,其中一些提交是对称为“临时保存”的东西的还原(是的,我可以藏起来,但是没有)。

所以我只想撤消功能分支的所有提交。例如,我知道我可以git reset HEAD^N,但可以使用master/HEAD或类似的东西吗?

2 个答案:

答案 0 :(得分:1)

您可能希望以交互方式进行rebase

以下命令显示要编辑的提交历史记录。

git rebase -i <earlier SHA>

然后:

  • pick承诺您要保留,
  • reword您要为其编辑提交消息的提交
  • 使用squashfixup合并提交
  • 从要删除的提交中删除行以“撤消”更改。

有关更多详细信息,请参见c.f.这篇出色的文章中的“批量撤消/重做”部分:How to undo (almost) anything with Git

答案 1 :(得分:1)

我认为您想要的只是reset with "mixed"-option。因此,如果您的功能分支处于活动状态,并且您想要删除提交并仍然保留更改并从master-branch重新开始:

git reset --mixed master

然后,您可以执行自己认为合适的提交。