在IntelliJ IDEA中,“Revert Commit”和“Undo Commit”的区别是什么?

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

enter image description here

这两个选项有什么不同?


21
当你执行撤销提交(undo commit)操作时,它会移除最近的提交并且不会在变更列表中创建一个新的提交。而在执行还原提交(revert commit)操作时,它会创建一个独立的还原提交。 - Maddy
1
@Maddy:在IntelliJ IDEA文档中添加链接,并将您的评论发布为答案。 - Peter
1
@Peter 我已发布了一个带有文档参考的答案。 - Maddy
1个回答

45

撤销最近的提交

IntelliJ IDEA允许您在当前分支(例如,HEAD)中撤销最近的提交。

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

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

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

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

  4. 如果要使要丢弃的更改所在的更改列表成为活动更改列表,则选择“设置为活动”选项。

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

撤销已推送的提交

如果你发现一个已经推送的特定提交中存在错误,你可以将该提交撤销。这个操作会生成一个新的提交来撤销你想要撤销的提交的影响。因此,项目历史记录被保留下来,原始提交保持不变。
1. 在版本控制窗口Alt+9的日志选项卡中找到您想要还原的提交,在右键菜单中选择“还原提交”。在文件历史记录视图中也可以从提交的右键菜单中找到此选项。提交更改对话框将打开,并自动生成提交消息。
2. 如果所选提交包含多个文件,而您只需要还原其中一些文件,请取消选择您不想更改的文件。
3. 单击“提交”以提交一个更改集,该更改集撤消了特定提交中所选文件的更改。
更多信息请参考此处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接