是否有一种快速的方法来撤消功能分支中的所有提交(保持更改未进行阶段化),并在知道如何操作后迅速执行git add -p
和git commit
的一些循环以创建新的清理器历史记录可以事后改变群体吗?
因此,假设我有80个提交,这是一个巨大的功能,其中一些提交是对称为“临时保存”的东西的还原(是的,我可以藏起来,但是没有)。
所以我只想撤消功能分支的所有提交。例如,我知道我可以git reset HEAD^N
,但可以使用master/HEAD
或类似的东西吗?
答案 0 :(得分:1)
您可能希望以交互方式进行rebase
。
以下命令显示要编辑的提交历史记录。
git rebase -i <earlier SHA>
然后:
pick
承诺您要保留,reword
您要为其编辑提交消息的提交squash
和fixup
合并提交有关更多详细信息,请参见c.f.这篇出色的文章中的“批量撤消/重做”部分:How to undo (almost) anything with Git 。
答案 1 :(得分:1)
我认为您想要的只是reset with "mixed"-option。因此,如果您的功能分支处于活动状态,并且您想要删除提交并仍然保留更改并从master-branch重新开始:
git reset --mixed master
然后,您可以执行自己认为合适的提交。