搁置或储藏更改
有时,您需要在一些事项尚未完成时在不同任务之间切换,然后再返回继续处理。 为在处理多个不同功能时不丢失工作,您可以将待处理的更改搁置或储藏。
搁置与储藏
储藏更改与搁置非常相似。
此外, 储藏 会包含所有未提交的更改,而当您 搁置 更改时,您可以选择部分本地更改,而无需全部搁置。
合并储藏和搁置选项卡
搁置和取消搁置更改
搁置 是将尚未提交的待处理更改临时存储起来。 这在您需要切换到其他任务,并希望暂时搁置更改以便稍后处理时非常有用。
使用 PyCharm,您既可以搁置单个文件,也可以搁置整个 更改列表。
更改一经搁置,您可以按需多次应用。
搁置更改
在 提交 工具窗口 Alt+0 中,右键点击要搁置的文件或更改列表,并从上下文菜单中选择 搁置更改。

在 搁置更改 对话框中,查看已修改文件列表。

列表中的所有文件默认处于选中状态。 取消选择您不想搁置的文件。
项目
工具提示和快捷键
说明
显示差异
Ctrl+D
打开 差异 对话框,以突出显示所选文件的本地工作副本与其存储库版本之间的差异。
还原
还原对所选文件本地工作副本所做的所有更改。
刷新更改
Ctrl+F5
点击此按钮重新加载 已更改的文件 树视图,使其保持最新。
分组依据
选择如何对已修改的文件进行分组——按目录或按模块
展开或折叠所有节点
Ctrl+NumPad +
Ctrl+NumPad -
点击这些按钮以展开或折叠目录树中的所有节点。 这些按钮在平面视图中不可用。
更改列表
不适用
从此列表中,选择包含要搁置的已修改文件的更改列表。 默认选择活动更改列表。
已修改的文件 窗格下方的摘要显示当前所选更改列表的统计信息,例如已修改、新建和删除的文件数量。 此区域还显示每种类型显示了多少个文件,以及其中有多少将被搁置。
在 提交消息 字段中,输入要创建的搁置名称。
在“差异”窗格中,您可以查看所选文件的基础存储库版本与您即将搁置的版本之间的差异。
项目
工具提示和快捷键
说明
/
上一个差异/下一个差异 Shift+F7 F7
跳转到下一个或上一个差异。
当到达最后一个或第一个差异时, PyCharm 会建议再次点击箭头按钮或按一次 F7/Shift+F7 ,并比较其他本地修改的文件。 此行为取决于 差异查看器设置 中的 到达最后一个更改后转到下一个文件 选项。
跳转到源(J)
F4
在编辑器中打开所选文件。 插入符号将放置在与 差异查看器 中相同的位置。
比较上一个/下一个文件
Alt+Left Alt+Right
点击这些按钮,将上一个/下一个文件的本地副本与其来自服务器的更新进行比较。
查看器
选择查看器模式:并排或统一。 并排模式包含两个面板,统一模式包含一个面板。
您可以在两个查看器中编辑代码并执行 接受、 追加、 还原 操作。
您只能在并排查看器的右侧部分或统一查看器的下方行中更改文本。
您只能编辑文件的本地版本。 您无法编辑具有只读状态的文件。
空白
定义差异查看器应如何处理空白。
不忽略 :空白很重要,所有差异都会高亮显示。 默认选中此选项。
修整空白 :如果空白出现在行尾和行首(
("\t", " ")),则修剪空白。如果两行仅在行尾空白上有所不同,则这两行被视为相同。
如果两行不同,在 By word 模式下不会高亮显示行尾空白。
忽略空格 :空白不重要,无论其在源代码中的位置如何。
忽略空格和空行 :忽略空白和空行。 以下内容将被忽略:
所有空白(与 '忽略空白' 选项相同)
所有仅由空白组成的新增或移除的行
所有仅拆分或合并行而未更改非空白部分的更改。
例如,
a b c与a \n b c之间的差异在此模式下不会高亮显示。
高亮显示模式
选择差异粒度的高亮显示方式。
可用选项包括:
高亮显示单词 :高亮显示已修改的单词
高亮显示行 :高亮显示已修改的行
高亮显示拆分的更改 :选择此选项时,会将较大的更改拆分为较小的更改。
例如,
A \n B和A X \n B X将被视为两个更改,而不是一个。高亮显示字符 :高亮显示已修改的符号
不高亮显示 :选择此选项时,将完全不高亮显示差异。
处理更改幅度较大的文件时,请使用 不高亮显示 选项。 在这种情况下,高亮显示可能会给审阅带来额外困难。
收起未更改的片段
折叠两个文件中所有未更改的片段。 不可折叠的未更改行数可在 差异与合并 设置页面中进行配置。 要打开 差异与合并 页面,请按 Ctrl+Alt+S 打开设置,并导航到 。 .
同步滚动
同时滚动两个差异窗格。 如果释放此按钮,则可以独立滚动每个窗格。
禁用编辑
启用所选文件本地副本的编辑,默认情况下处于禁用状态。 启用编辑后,您可以在提交前对已修改的文件进行最后的更改。
编辑器设置
打开可用选项列表。 选中或清除这些选项,以显示或隐藏行号、缩进指南、空白和软换行。
帮助
F1
打开浏览器并显示相应的帮助页面。
请注意,上述大多数选项仅适用于文本文件。 二进制文件的差异选项数量有限。
点击 搁置更改 按钮。
您也可以静默搁置更改,而不显示 搁置更改 对话框。 为此,选择要搁置的文件或更改列表,然后在工具栏上点击 静默搁置 ,或按 Ctrl+Shift+H。 将使用包含您要搁置的更改的更改列表名称作为搁置名称。
为避免生成大量同名搁置(例如 默认 ),您可以将文件或更改列表从 提交 选项卡拖到 提交 工具窗口的 搁置 选项卡,等待一秒钟直至其激活,然后在释放鼠标按钮后编辑新的搁置名称。
取消搁置更改
取消搁置是将延期的更改从搁置移动到待处理更改列表。 已取消搁置的更改可以从视图中过滤掉,或从搁置中移除。
在 搁置 选项卡中,选择您要取消搁置的更改列表或文件。
按 Ctrl+Shift+U ,或在所选内容的上下文菜单中选择 取消搁置。

在 取消搁置更改 对话框中,在 名称 字段中指定要将取消搁置的更改恢复到的更改列表。 您可以从列表中选择现有更改列表,或输入要创建的新更改列表的名称。 您可以在 注释 字段中输入新更改列表的描述(可选)。
如果您想使新更改列表处于活动状态,请选择 设为活动。 否则,当前活动更改列表将保持活动状态。
如果您希望 PyCharm 在新更改列表停用时保存与其关联的任务的 上下文 ,并在该更改列表变为活动状态时恢复该上下文,请选择 跟踪上下文 选项(详细信息请参阅 任务和上下文)。
如果您希望移除即将取消搁置的更改,请选择 从搁置中移除已成功应用的文件 选项。 取消搁置的文件将从此搁置中移除、添加到另一个更改列表,并标记为已应用。 在从上下文菜单中选择 删除 明确删除之前,它们不会被完全移除。
点击 确定。 如果修补后的版本与当前版本之间发生冲突,请按照 解决 Git 冲突 中的说明进行解决。
您也可以静默取消搁置更改,而不显示 取消搁置更改 对话框。 为此,选择要取消搁置的文件或更改列表,然后在工具栏上点击 静默取消搁置 ,或按 Ctrl+Alt+U。 取消搁置的文件将移至活动的待处理更改列表。
您也可以将文件或更改列表从 搁置 选项卡拖到 提交 选项卡,以静默取消搁置。 如果按住 Ctrl 键进行拖动,则会将其复制到 提交 选项卡,同时保留在搁置中。
丢弃已搁置的更改
在 搁置 视图中,选择包含您不再希望保留的更改的更改列表。
右键点击该更改列表,然后在上下文菜单中选择 删除 ,或按 Delete。
恢复已取消搁置的更改
PyCharm 可在需要时重新应用已取消搁置的更改。 所有已取消搁置的更改都可以重复使用,直到您从上下文菜单中选择 删除 将其明确移除为止。
点击
显示 并确保 已取消搁置 选项是
启用的。
选择要恢复的文件或搁置。
在所选内容的上下文菜单中选择 恢复。
应用外部补丁
您可以导入在 PyCharm 内部或外部创建的补丁,并将其作为搁置的更改进行应用。
在 搁置 视图中,从上下文菜单中选择 导入补丁。
在打开的对话框中,选择要应用的补丁文件。 所选补丁将作为一个搁置显示在 搁置 选项卡中。
选择新添加的、包含该补丁的搁置,然后在所选内容的上下文菜单中选择 取消搁置更改。
自动搁置基线修订
将 PyCharm 配置为始终搁置受 Git 版本控制的文件的基线修订可能会很有用。
按 Ctrl+Alt+S 打开设置,然后选择 。
选择 在分布式版本控制系统中搁置文件的基线修订版本 选项。
如果启用此选项,文件的基线修订将保存到搁置中;在应用搁置导致冲突时,将在 三方合并 过程中使用该基线修订。 如果禁用此选项,PyCharm 将在项目历史记录中查找基线修订,这可能需要一段时间。 此外,发生冲突的搁置所基于的修订可能已不存在(例如,如果历史记录因 rebase 操作而发生更改)。
更改默认搁置位置
默认情况下,搁置目录位于您的项目目录下。 不过,您可能希望更改默认搁置位置。 例如,如果您想在清理工作副本时避免意外删除搁置,或者希望将其存储在单独的存储库中以便在团队成员之间共享搁置,则更改位置会很有用。
按 Ctrl+Alt+S 打开设置,然后选择 。
点击 更改搁置位置 ,并在打开的对话框中指定新位置。
如有必要,选择 将搁置移动到新位置 以将现有搁置移动到新目录。
观看此视频教程,了解如何借助搁置在不丢失未完成工作的情况下切换到其他任务:
储藏更改
有时可能需要将工作副本还原为与 HEAD 提交一致,但您又不想丢失已完成的工作。 在您得知上游存在可能与当前工作相关的更改,或需要进行紧急修复时,可能会出现这种情况。
储藏涉及记录 HEAD 提交与当前工作目录状态之间的差异(储藏)。 索引中的更改也可以储藏。
取消储藏是将已保存的储藏应用到某个分支。
您可以将储藏应用到现有分支,或基于其创建一个新分支。
储藏可以按需多次应用到任意分支,只需 切换到所需分支。 请注意:
在一系列提交之后应用储藏会导致冲突,您需要解决这些冲突。
您不能将储藏应用到 "dirty" 工作副本,即具有未提交更改的工作副本。
将更改保存到储藏
在 提交 工具窗口 Alt+0 中,右键点击以打开上下文菜单,并选择 。

在打开的 储藏 对话框中,选择合适的 Git 根目录,并确保已检出正确的分支。
在 消息 字段中,描述您即将储藏的更改。
若要储藏本地更改并将索引中已暂存的更改带回到您的工作树以进行检查和测试,请选择 保留索引 选项。
点击 创建储藏。
储藏的更改将被移动到 储藏 选项卡,位于同一 提交 工具窗口中的 提交 选项卡旁边。
查看已储藏的更改并应用储藏
在 提交 工具窗口 Alt+0 中,打开 储藏 选项卡。

在储藏列表中选择要应用的储藏。
要查看已储藏的更改并将其与当前代码版本进行比较,请双击列表中的任意文件以打开储藏的差异。

要在单独的窗口中打开差异,请在“差异”窗格中点击
设置 ,并选择 在单独窗口中显示差异。
点击 应用 以应用所选储藏并将其保留在列表中。
点击 弹出 以应用所选储藏并将其从列表中移除。
您可以基于所选储藏创建一个新分支,而不是将其应用到当前检出的分支。
右键点击该储藏以打开上下文菜单,然后选择 取消储藏。
在 作为新分支 字段中输入该分支的名称。
要同时应用已储藏的索引更改,请选择 恢复索引 选项。
点击 应用储藏。
要移除某个储藏,在列表中选择它,右键点击以打开上下文菜单,然后选择 丢弃。 要移除所有储藏,选择 清除。
