撤销 Git 仓库中的更改
撤销未提交的更改
您始终可以在提交更改之前撤销在本地所做的更改:
在 Commit 工具窗口 Alt+0 中,选择您想要还原的一个或多个文件,然后从上下文菜单中选择 回滚 ,或按 Ctrl+Alt+Z。
在打开的对话框中,检查要还原的文件列表。
选中 删除已添加文件的本地副本 复选框,以还原已添加的文件以及已修改文件中的更改。
所有自上次提交以来对所选文件所做的更改都将被丢弃,并且它们将从活动变更列表中消失。
取消暂存文件
默认情况下,PhpStorm 会使用 变更列表 概念,在此概念下修改的文件会自动暂存。
如果文件已经在版本控制之下,并且您不想提交它,您可以:
从提交中删除 :不要在 Changes 区域的 提交 工具窗口中选择它。
如果您更习惯于暂存的概念,请在 版本控制 | Git 设置页面  Ctrl+Alt+S 中选择 启用暂存区域 选项。
此外,默认情况下,PhpStorm 建议将每个新创建的文件添加到版本控制中。 您可以在 中分别使用 当文件创建时 和 当文件被删除时 设置来更改此行为。
撤销上一次提交
PhpStorm 允许您撤销当前分支中的最后一次提交。
打开 Git 工具窗口 Alt+9 并切换到 日志 标签页。
在当前分支中选择最后一个提交并从上下文菜单中选择 撤销提交。
在打开的对话框中,选择一个将要丢弃的更改将被移动到的变更列表。 您可以选择 名称 列表中的一个现有变更列表,或指定一个新变更列表的名称(默认使用提交消息)。
输入一个可选评论。 当新变更列表提交到存储库时,此评论将出现在 Comment 文本区域的 提交变更 对话框中。
如果您希望将即将丢弃更改的更改列表设为活动更改列表,请选择 设为活动(A) 选项。
如果您希望 PhpStorm 记住您的上下文并在此变更列表激活时重新加载编辑器中当前打开的文件,请选择 跟踪上下文 选项。
恢复已推送的提交
如果您注意到已经推送的特定提交中有错误,您可以撤销该提交。 此操作将产生一个新的提交,它会逆转您想要撤销的提交的效果。 因此,项目历史被保留,因为原始提交保持完好。
在 日志 选项卡的 Git 工具窗口 Alt+9 中找到您想要还原的提交,右键单击它并从上下文菜单中选择 还原提交。 此选项也可以通过文件 History 视图中的上下文菜单获得。 提交更改 对话框将会以自动生成的提交信息打开。
如果所选的提交包含多个文件,且您只需要还原其中的一些文件,请取消选择您不想更改的文件。
点击 Commit 提交一个变更集,将选定文件中的更改还原到此特定提交。
还原选定的更改
PhpStorm 允许您撤销已推送提交中的选定更改,如果此提交包含多个文件而您只需要还原其中的一些文件。
在 日志 视图中选择包含您想要丢弃的更改的提交。
在 Changed Files窗格中,右键点击您想要还原的文件,然后从上下文菜单中选择 还原选定的更改。
这会生成一个新的提交来撤销您想要撤销的更改。
放弃提交
与 还原一个提交不同,后者会反映在分支历史中,您可以在当前分支中丢弃已推送的提交而不留下任何操作痕迹。
在 日志 视图中选择您要丢弃的提交,然后从上下文菜单中选择 放弃提交。
将分支重置到特定提交
如果您在一组最近的提交中发现错误并希望重做该部分,您可以将仓库回滚到特定状态。 这是通过将当前分支的 HEAD 重置为指定的提交来完成的(如果您不希望在历史记录中反映此撤消操作,还可以选择重置 index 和 working tree)。
打开 版本控制 工具窗口 Alt+9 并切换到 日志 标签页。
选择您要将 HEAD 移动到的提交,并从上下文菜单中选择 重置当前分支到此处。
在打开的 Git Reset 对话框中,选择您希望如何更新工作树和索引,然后点击 重置:
软 :所有在所选提交之后所做提交中的更改都将暂存(这意味着它们将被移动到 Commit 窗口,以便您查看并在必要时稍后提交)。
混合 :所做的更改将在选定的提交之后被保留,但不会被暂存以进行提交。
困难 :在所选提交之后所做的所有更改都会被丢弃(包括已暂存和已提交的更改)。
保留 :在选定的提交之后所做的已提交更改将被丢弃,但本地更改将保持不变。
获取文件的先前修订版本
如果您需要还原单个文件而不是丢弃包含多个文件更改的整个提交,您可以返回到该文件的特定版本:
在任意视图中选择所需文件(如 Project 工具窗口 Alt+1 、编辑器、 Commit 窗口等)。
从主菜单选择 Git | 选定文件 | 显示历史 或从所选内容的上下文菜单选择 Git | 显示历史。 历史记录 选项卡已添加到 Git 工具窗口中,显示所选文件的历史记录,并允许您查看和比较其修订版本。
当您确定了想要恢复的修订版本后,请在列表中选择该版本,并从上下文菜单中选择 Get。