撤消 Git 存储库中的更改
最后修改时间:2023 年 10 月 26 日恢复未提交的更改
在提交之前,您始终可以在本地撤消所做的更改:
在 “提交”工具窗口中,选择一个或多个要还原的文件,然后从上下文菜单中选择“回滚” ,或按。Alt00CtrlAlt0Z
自上次提交以来对所选文件所做的所有更改都将被丢弃,并且它们将从活动更改列表中消失。
取消暂存文件
默认情况下,PyCharm 使用更改列表概念,其中修改的文件会自动暂存。
如果文件已处于版本控制之下,并且您不想提交它,您可以:
从提交中删除它:不要在提交工具窗口的更改区域中选择它。
如果您更习惯暂存概念,请选择版本控制 |中的启用暂存区域选项。IDE 设置的 Git页面。CtrlAlt0S
此外,默认情况下 PyCharm 建议将每个新创建的文件添加到版本控制下。您可以在“设置”|“设置”中更改此行为。版本控制 | 分别使用“创建文件时”和“删除文件时”设置进行确认。
撤消最后一次提交
PyCharm 允许您撤消当前分支中的最后一次提交。
笔记
如果提交被推送到受保护的分支,则无法撤消该提交,即不允许使用强制 --push的分支(在IDE 设置的 版本控制 | Git页面中配置受保护的分支)请注意,如果分支被标记由于 GitHub 上受保护,当您签出时,PyCharm 会自动将其标记为受保护。CtrlAlt0S
打开 Git工具窗口 并切换到“日志”选项卡。Alt09
选择当前分支中的最后一次提交,然后从上下文菜单中选择“撤消提交” 。
在打开的对话框中,选择一个更改列表,您要放弃的更改将移至其中。您可以从名称列表中选择现有变更列表,也可以指定新变更列表的名称(默认情况下使用提交消息)。
如果您想要使用要放弃活动更改列表的更改来创建更改列表,请选择“设置活动”选项。
如果您希望 PyCharm 记住您的上下文并在此更改列表激活时重新加载编辑器中当前打开的文件,请选择“跟踪上下文”选项。
恢复推送的提交
如果您发现已推送的特定提交中有错误,您可以恢复该提交。此操作会产生一个新的提交,该提交会逆转您要撤消的提交的效果。因此,项目历史记录被保留,因为原始提交保持不变。
在Git工具窗口 的 “日志”选项卡中找到要还原的提交 ,右键单击它并从上下文菜单中选择“还原提交” 。也可以从文件历史记录视图中提交的上下文菜单中使用此选项。“提交更改”对话框将打开,其中包含自动生成的提交消息。Alt09
笔记
如果将此操作应用于“日志”视图中选择的多个提交,则会创建一个单独的提交来还原每个提交。
如果所选提交包含多个文件,并且您只需要恢复其中一些文件,请取消选择您不想触及的文件。
单击“提交”以提交更改集,该更改集将还原对此特定提交中所选文件的更改。
恢复选定的更改
如果此提交包含多个文件并且您只需要恢复其中一些文件,PyCharm 允许您撤消推送提交中选定的更改。
在日志视图中,选择包含要放弃的更改的提交。
在“更改的文件”窗格中,右键单击要还原的文件,然后从上下文菜单中选择“还原选定的更改” 。
这会产生一个新的提交,该提交会撤销您想要撤消的更改。
删除提交
与反映在分支历史记录中的恢复提交不同,您可以丢弃当前分支中推送的提交,而不会留下任何操作痕迹。
警告
与任何重写分支历史记录的操作一样,删除提交需要--force 推送,并且不能在受保护的分支中执行(这些可以在IDE 设置的 版本控制 | Git页面中进行配置)。CtrlAlt0S
在日志视图中选择要放弃的提交,然后从上下文菜单中选择“删除提交” 。
将分支重置为特定提交
如果您发现最近的一组提交中存在错误并想要重做该部分,则可以将存储库回滚到特定状态。这是通过将当前分支 HEAD 重置为指定的提交来完成的(如果您不想在历史记录中反映撤消,则可以选择重置索引和工作树)。
打开 版本控制工具窗口 并切换到日志选项卡。Alt09
选择要将 HEAD 移至的提交,然后从上下文菜单中选择将当前分支重置到此处。
在打开的Git Reset对话框中,选择您希望如何更新工作树和索引,然后单击Reset:
Soft:所选提交之后所做的所有更改都将暂存(这意味着它们将被移动到 “更改”视图,以便您可以查看它们并在必要时稍后提交)。
混合:将保留所选提交后所做的更改,但不会暂存提交。
Hard:所选提交后所做的所有更改都将被丢弃(暂存和提交)。
Keep:所选提交后所做的已提交更改将被丢弃,但本地更改将保持不变。
获取文件的先前修订版本
如果您需要恢复单个文件而不是丢弃包含对多个文件的更改的整个提交,您可以返回到该文件的特定版本:
在任何视图(项目工具窗口、编辑器、 更改视图等)中选择必要的文件。
选择Git | 从VCS主菜单或选择的上下文菜单显示历史记录。“历史记录”选项卡已添加到 Git工具窗口,显示所选文件的历史记录,并允许您查看和比较其修订版本。
确定要回滚到的修订版本后,在列表中选择它,然后从上下文菜单中选择“获取” 。
感谢您的反馈意见!