codecamp

Git集成如何取消更改

还原未提交的更改

在Git集成中,提交更改之前,您可以随时撤销您在本地完成的更改,请执行下述操作:

  1. 打开"版本控制工具"窗口(Alt+9)并切换到“本地更改”选项卡。
  2. 在活动更改列表中,选择一个或多个要还原的文件,然后从上下文菜单中选择“还原”,或按Ctrl+Alt+Z。自上次提交后对所选文件所做的所有更改都将被撤消,并且将从“本地更改”视图中消失 。

取消上次提交

IntelliJ IDEA允许您撤消当前分支中的最后一个提交(即HEAD),请执行下列操作:

注意:如果 commit 被推送到受保护的分支(即不允许的push --force分支),则不能撤消该提交。您可以在“版本控制”|Git 下的"设置" 对话框 (Ctrl + Alt + S)中配置受保护分支的列表。
  1. 打开"版本控制工具"窗口(Alt+9)并切换到"日志"选项卡。
  2. 选择当前分支中的最后一个提交,并从上下文菜单中选择“撤消提交”。
  3. 在打开的对话框中,选择要丢弃的更改的列表将被移动。您可以从“名称”下拉列表中选择现有的更改列表,也可以指定新更改列表的名称(默认情况下使用提交消息)。
  4. 如果要使列表与将要丢弃的活动列表的更改一起使用,请选择“设置活动”选项。
  5. 如果您希望IntelliJ IDEA记住您的上下文,并在编辑器中重新加载当前打开的文件(当此列表变为活动状态时),请选择"跟踪上下文"选项。

还原推送的提交

如果您注意到已经推送的特定提交中出现的错误,则可以恢复该提交。这个操作将产生一个新的提交,它将撤消您想提交的commit的效果。因此,项目历史被保留下来,原始的提交保持不变。

  1. 在“日志”视图中找到要还原的提交,右键单击该提交并从上下文菜单中选择“恢复”。“提交更改”对话框将以自动生成的提交消息打开。
  2. 如果所选提交包含多个文件,并且只需要还原其中一些文件,请取消选择不想接触的文件。
  3. 单击Commit以提交一个变更集,该变更集还原对此特定提交中选定文件的更改。

将分支重置为特定的提交

如果您在最近的一组提交中发现错误,并且想要重做该部分,则可以将存储库回滚到特定状态。这是通过将当前分支HEAD重置为特定的提交来完成的(并且如果您不希望在历史记录中反映撤消,则可以选择重置索引和工作树)。

  1. 打开“版本控制工具”窗口(Alt+9),然后切换到 "日志" 选项卡。
  2. 选择要将HEAD移动到的提交,然后从上下文菜单中选择“将当前分支重置到此处 ”。
  3. 在打开的Git Reset对话框中,选择你希望工作树和索引更新的方式,然后单击Reset:
    • Soft:所选提交之后所做的所有更改都将被执行(即,它们将被移动到“本地更改”视图,以便您可以查看它们并在必要时提交)。
    • Mixed:所选提交后所做的更改将被保留,但不会被提交。
    • Hard:所选提交后所做的所有更改都将被丢弃(包括暂存和提交)。
    • Keep:所选提交后所做的更改将被丢弃,但本地更改将保持不变。

获取文件的上一个修订版本

如果您需要还原单个文件而不是丢弃包含对多个文件的更改的整个提交,则可以返回到该文件的特定版本:

  1. 在任意视图(在“项目”工具窗口、编辑器、“版本控制”工具窗口的“本地更改”选项卡等)中选择所需的文件。
  2. 从主VCS菜单或选择的上下文菜单中选择:Git | 显示历史记录。“历史记录”选项卡将添加到版本控制工具窗口,显示所选文件的历史记录,并允许您查看和比较其修订版本。
  3. 当您确定要回滚到的修订版本时,请在列表中选择它,然后从上下文菜单中选择“获取(Get)”。
IDEA如何同时对多个功能进行处理
Git:使用标签来标记特定的提交
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }