IntelliJ IDEA 中的“Revert Commit”和“Undo Commit”有什么区别?

Mar*_*ies 28 git undo jetbrains-ide intellij-idea git-revert

在 IntelliJ Ultimate IDEA 2019.3(不确定何时引入)中,我们在版本控制 -> 日志选项卡中有“还原提交”和“撤消提交”选项。

在此处输入图片说明

这两个选项有什么区别?

Mad*_*ddy 20

撤消最后一次提交

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

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

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

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

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

  4. 如果要使用即将放弃活动更改列表的更改创建更改列表,请选择设置活动选项。

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

恢复推送提交

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

  1. 在版本控制窗口 Alt+9 的日志选项卡中找到要还原的提交,右键单击它并从上下文菜单中选择还原提交。此选项也可从“文件历史记录”视图中提交的上下文菜单中使用。Commit Changes 对话框将打开并显示一条自动生成的提交消息。

  2. 如果选定的提交包含多个文件,而您只需要还原其中的一些文件,请取消选择您不想触及的文件。

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

有关更多信息,请参阅此处