IntelliJ IDEA 中 "Revert Commit" 和 "Undo Commit" 有什么区别?

What is the difference between "Revert Commit" and "Undo Commit" in IntelliJ IDEA?

在 IntelliJ Ultimate IDEA 2019.3(不确定何时引入)中,我们在版本控制 -> 日志选项卡中有 "Revert Commit" 和 "Undo Commit" 选项。

这两个选项有什么区别?

Undo the last commit

IntelliJ IDEA 允许您撤消当前分支中的最后一次提交(例如,HEAD)。

注意:如果提交被推送到受保护的分支,则无法撤消提交,即不允许强制 --push 的分支(在 Settings/Preferences 中配置受保护的分支版本控制下的对话框 Ctrl+Alt+S | Git).

  1. 打开版本控制 window Alt+9 并切换到日志选项卡。

  2. Select 当前分支中的最后一次提交,然后从上下文菜单中选择撤消提交。

  3. 在打开的对话框中,select 一个更改列表,您要放弃的更改将移到其中。您可以 select 名称列表中的现有更改列表,或指定新更改列表的名称(默认使用提交消息)。

  4. Select 如果要使更改列表包含您即将丢弃的更改列表,则设置活动选项。

  5. Select 如果您希望 IntelliJ IDEA 记住您的上下文并在此更改列表激活时重新加载编辑器中当前打开的文件,请使用跟踪上下文选项。

Revert a pushed commit

如果您发现已推送的特定提交中有错误,您可以还原该提交。此操作会产生一个新的提交,该提交会反转您要撤消的提交的效果。因此,项目历史得以保留,因为原始提交保持不变。

  1. 在版本控制的日志选项卡中找到要还原的提交 window Alt+9,右键单击它并从上下文菜单中 select 还原提交.此选项也可从“文件历史记录”视图中提交的上下文菜单中获得。 “提交更改”对话框将打开,并带有自动生成的提交消息。

  2. 如果 selected 提交包含多个文件,而您只需要还原其中的一些文件,则 deselect 您不想触及的文件。

  3. 单击“提交”以提交一个变更集,该变更集可恢复对该特定提交中 selected 文件的更改。

更多信息请参考here