简介
说明
本文介绍Idea进行Undo Commit,Revert Commit,Drop Commit的区别。
结论
项 | 是否删除对代码的修改 | 是否删除Commit记录 | 是否会新增Commit记录 |
Undo Commit | 否 | 未Push会,已Push不会 | 否 |
Revert Commit | 是 | 否 | 否 |
Drop Commit | 是 | 未Push会,已Push不会 | 否 |
Undo Commit
说明
Undo Commit就是撤销了Commit这个动作。
使用场景
代码修改完了,已经Commit,还未push,然后发现还有地方需要修改,但是又不想增加一个新的Commit记录。这时可以进行Undo Commit,修改后再重新Commit。
如果已经Push,远程的Commit记录还是会存在的。
操作流程
- 修改代码,进行commit操作。
- 确认Commit之后(未进行push)
- 进行Undo Commit操作
执行后和未Commit之前完全一样。
Revert Commit
说明
Revert Commit会新建一个 Revert “xxx Commit”的Commit记录,该记录进行的操作是将"xxx Commit"中对代码进行的修改全部撤销掉。
操作流程
- 修改,进行commit操作。
- 进行Revert Commit
- 执行成功后:新增了Commit 记录【Revert “测试Revert Commit”】,该记录中将【测试Revert Commit】中对代码进行的修改删除了。
Drop Commit(慎用)
说明
对于未push的Commit记录:
会删除Commit记录,同时Commit中对代码进行的修改也会全部被删除。
对于已push的Commit记录:
相对于未push的Commit,区别在于远程的Commit记录不会被删除。
操作流程
- 修改代码,然后进行Commit
- 进行Drop Commit操作后
- Commit 记录被删除,代码修改也被删除。