搁置或存储更改
有时,您需要在不同任务之间切换,留下未完成的事项,然后再返回处理它们。 为了在多个不同功能间切换而不丢失工作,您可以将待处理的更改搁置或存储。
搁置与存储的比较
存储更改与搁置非常相似。
此外, 存储会包含所有未提交的更改,而在 搁置更改时,您可以选择部分本地更改,而不是全部搁置。
合并存储和搁置选项卡
搁置与恢复更改
搁置是暂时存储尚未提交的待处理更改。 例如,如果您需要切换到其他任务,但想稍后继续处理当前更改,这将非常有用。
借助 GoLand,您可以搁置单个文件,也可以搁置整个 变更列表。
一旦搁置,您可以根据需要多次应用该更改。
搁置更改
在 提交 工具窗口中 Alt+0 ,右键点击需要搁置的文件或变更列表,并从上下文菜单中选择 搁置变更。
在 搁置变更 对话框中,查看已修改文件列表。

列表中的所有文件默认均为选中状态。 取消选择那些您不希望搁置的文件。
项目
工具提示及快捷键
描述
显示差异
Ctrl+D
打开 差异对话框,突出显示所选文件在本地工作副本与版本库版本之间的差异。
还原
还原所选文件本地工作副本中所做的所有更改。
刷新更改
Ctrl+F5
单击此按钮以重新加载 已更改文件 树视图,使其保持最新。
分组依据
选择要如何对已修改文件进行分组——可按目录或模块分组
展开或折叠所有节点
Ctrl+NumPad +
Ctrl+NumPad -
单击这些按钮可展开或折叠目录树中的所有节点。 这些按钮在扁平视图中不可用。
变更列表
无
从列表中选择包含要搁置的已修改文件的变更列表。 活动变更列表为默认选项。
已修改文件 窗格下方的摘要显示当前所选变更列表的统计信息,例如已修改、新增和已删除文件的数量。 该区域还显示每种类型的文件数量,以及其中将被暂存的文件数量。
在 提交消息 字段中输入要创建的搁置名称。
在 Diff 窗格中,您可以查看所选文件的基础版本与即将暂存的版本之间的差异。
项
工具提示与快捷键
描述
/
上一个差异 / 下一个差异 Shift+F7 F7
跳转到上一个或下一个差异。
当到达最后一个或第一个差异时,GoLand 将建议再次点击箭头按钮或按下 F7/Shift+F7 ,以比较其他本地修改的文件。 此行为取决于 到达最后一个更改后跳转到下一个文件 选项在 Diff 查看器设置 中的配置。
跳转到源(J)
F4
在编辑器中打开所选文件。 插入符位置与 差异查看器 中的位置相同。
比较上一个/下一个文件
Alt+Left Alt+Right
点击这些按钮可将上一个或下一个文件的本地副本与其来自服务器的更新进行比较。
查看器
选择一种查看器模式:并排或统一。并排模式包含两个面板,统一模式包含一个面板。 并排模式包含两个面板,统一模式包含一个面板。
您可以在这两种查看器中编辑代码并执行 接受、 追加、 还原 操作。
只能在并排查看器的右侧部分或统一查看器的下方行中修改文本。
您只能编辑文件的本地版本。 无法编辑只读状态的文件。
空格
定义 Diff 查看器应如何处理空格。
不忽略 :空格很重要,所有差异均会高亮显示。 默认选中此选项。
修整空白 :当空格出现在行首或行尾时会被裁剪(
("\t", " "))。如果两行仅在尾随空格上存在差异,则视为相同。
如果两行不同,则在 按词 模式下不会高亮显示尾随空格。
忽略空格 :空格不重要,无论在源代码中的位置如何。
忽略空格和空行 :忽略空格和空行。 以下实体将被忽略:
所有空格(与“忽略空格”选项类似)
所有仅由空格组成的新增或删除行
所有仅更改空格而非内容的拆分或合并操作。
例如,在该模式下,
a b c与a \n b c之间的差异不会被高亮显示。
高亮模式
选择差异细节的高亮显示方式。
可用的选项有:
高亮显示单词 :会高亮显示被修改的单词
高亮显示行 :会高亮显示被修改的行
高亮显示拆分的更改 :选中此选项后,大型变更会被拆分为多个较小的变更。
例如,
A \n B与A X \n B X会被视为两个独立的变更。高亮显示字符 :会高亮显示被修改的符号
不高亮显示 :如果选中此选项,则不会高亮显示任何差异。
如果处理的是大幅修改过的文件,建议使用 不高亮显示 选项。 在此类情况下,高亮可能会对审查过程造成额外干扰。
收起未更改的片段
折叠两个文件中所有未更改的片段。 未折叠的未更改行数可在 差异与合并 设置页面中配置。 要打开 差异与合并 页面,请按下 Ctrl+Alt+S 并导航至 来打开设置。 。
同步滚动
同时滚动两个 diff 窗格。 如果未按下此按钮,则两个窗格可以分别滚动。
禁用编辑
启用对所选文件本地副本的编辑,默认情况下处于禁用状态。 启用编辑后,可在提交前对已修改文件进行最后调整。
编辑器设置
打开可用选项列表。 选择或取消这些选项以显示或隐藏行号、缩进参考线、空格以及软换行。
帮助
F1
打开浏览器并显示对应的帮助页面。
请注意,上述大部分选项仅适用于文本文件。 二进制文件的 diff 选项数量有限。
点击 搁置变更 按钮。
您还可以静默搁置更改,而无需显示 搁置变更 对话框。 为此,请选择要搁置的文件或变更列表,然后点击工具栏上的 静默搁置 ,或按下 Ctrl+Shift+H。 包含要搁置的更改的变更列表名称将用作搁置名称。
为避免出现大量同名搁置(例如 默认 ),您可以将文件或变更列表从 提交 选项卡拖动到 存储架 选项卡(位于 提交 工具窗口中),等待一秒以激活该选项卡,然后在松开鼠标按钮后编辑新的搁置名称。
恢复搁置的更改
取消搁置是将已延迟的更改从搁置移动到待处理变更列表中。 已取消搁置的更改可以从视图中过滤掉,或从搁置中删除。
在 存储架 选项卡中,选择要取消搁置的变更列表或文件。
按 Ctrl+Shift+U ,或在选中项的上下文菜单中选择 取消搁置。
在 取消搁置变更 对话框中,在 名称 字段中指定要还原取消搁置更改的变更列表。 您可以从列表中选择现有变更列表,或者输入要创建的新变更列表的名称。 您可以在 注释 字段中输入新变更列表的描述(可选)。
若要使新的变更列表变为活动状态,请选择 设为活动项。 否则,当前活动的变更列表将保持活动状态。
如果希望当新变更列表被停用时 GoLand 保存关联任务的 上下文 ,并在变更列表变为活动状态时恢复该上下文,请选择 跟踪上下文 选项(有关详细信息,请参阅 任务与上下文)。
如果要删除即将取消搁置的更改,请选择 从存储架中移除已成功应用的文件 选项。 取消搁置的文件将从该搁置中移除,添加到另一个变更列表中,并标记为已应用。 在从上下文菜单中显式选择 删除 之前,它们不会被彻底删除。
点击 确定。 如果打补丁的版本与当前版本之间存在冲突,请按照 解决 Git 冲突 中的说明解决。
您也可以静默取消搁置更改,而无需显示 取消搁置变更 对话框。 为此,请选择要取消搁置的文件或变更列表,然后点击工具栏上的 静默取消搁置 ,或按下 Ctrl+Alt+U。 取消搁置的文件将被移动到活动的待处理变更列表中。
您也可以将文件或变更列表从 存储架 选项卡拖动到 提交 选项卡,以静默取消搁置。 如果在拖动时按住 Ctrl 键,则文件将被复制到 提交 选项卡,并同时保留在搁置中。
丢弃已搁置的更改
在 存储架 视图中,选择包含您不再需要的更改的变更列表。
右键点击变更列表,在上下文菜单中选择 删除 ,或按下 Delete。
还原已恢复的更改
GoLand 允许您在需要时重新应用已取消搁置的更改。 所有取消搁置的更改在被显式从上下文菜单中选择 删除 删除之前都可以重复使用。
点击
显示 ,然后确保 已取消搁置 选项已
启用。
选择要恢复的文件或搁置。
在选中项的上下文菜单中选择 还原。
应用外部补丁
您可以导入在 GoLand 内部或外部创建的补丁,并将其应用为搁置更改。
在 存储架 视图中,从上下文菜单中选择 导入补丁。
在打开的对话框中,选择要应用的补丁文件。 所选补丁将以搁置的形式显示在 存储架 选项卡中。
选择包含补丁的新搁置项,并从选中项的上下文菜单中选择 取消搁置变更。
自动搁置基准版本
建议配置 GoLand,始终搁置处于 Git 版本控制下的文件的基本版本。
按下 Ctrl+Alt+S 以打开设置,然后选择 。
选择 搁置分布式版本控制系统中文件的基准修订版本 选项。
如果启用了此选项,文件的基准版本将保存到搁置中,并在应用搁置导致冲突时用于 三方合并。 如果未启用该选项,GoLand 将在项目历史中查找基准版本,该过程可能耗时较长。 此外,冲突搁置所基于的版本可能已丢失(例如,由于变基操作导致历史记录发生变化)。
更改默认搁置位置
默认情况下,shelf 目录位于项目目录下。 不过,您可能希望更改默认的 shelf 位置。 例如,如果您希望在清理工作副本时避免意外删除 shelf,也或者希望将其存储在单独的版本库中以便与团队成员共享,那么更改默认位置将非常有用。
按 Ctrl+Alt+S 打开设置,然后选择 。
单击 更改存储架位置 ,并在打开的对话框中指定新位置。
如有需要,请选择 将存储架移至新位置 ,以将现有 shelf 移动到新目录中。
观看此视频教程,了解如何通过使用 shelf 来切换到其他任务,而不会丢失未完成的工作:
存储更改
在某些情况下,您可能需要将工作副本恢复为 HEAD 提交的状态,但又不希望丢失当前已完成的工作。 这可能发生在您得知有上游变更可能与您当前工作相关时,或当您需要进行紧急修复时。
暂存操作记录 HEAD 提交与当前工作目录状态(stash)之间的差异。 索引中的更改也可以被暂存。
解除暂存是将已保存的 stash 应用到某个分支的过程。
您可以将 stash 应用到已有分支,或者以此为基础创建新分支。
stash 可以根据需要多次应用到所需的任何分支,只需 切换到所需的分支。 请注意:
在一系列提交之后应用 stash 会导致冲突,需解决这些冲突。
无法将 stash 应用于“脏”的工作副本,即包含未提交更改的副本。
将更改保存到存储中
在 提交 工具窗口 Alt+0 中,右键单击以打开上下文菜单,然后选择 。

在打开的 存储 对话框中,选择相应的 Git 根目录,并确保已检出正确的分支。
在 消息 字段中描述您将要暂存的更改。
要暂存本地更改并将索引中的更改带入工作区以便检查和测试,请选择 保留索引 选项。
单击 创建存储项。
暂存的更改将被移至 存储 选项卡,与同一 提交 工具窗口中的 提交 选项卡并列。
查看并应用存储的更改
在 提交 工具窗口 Alt+0 中,打开 存储 选项卡。

从 stash 列表中选择要应用的 stash。
要查看暂存的更改并与当前代码版本进行比较,请双击列表中的任意文件以打开 stash 差异视图。

要在单独窗口中打开差异视图,请在 Diff 面板中单击
设置 ,并选择 在单独窗口中显示差异。
单击 应用 以应用所选 stash 并将其保留在列表中。
单击 弹出 以应用所选 stash 并将其从列表中移除。
您可以基于所选 stash 创建新分支,而不是应用到当前检出的分支上。
右键单击 stash 以打开上下文菜单,然后选择 取消存储。
在 作为新分支 字段中键入新分支的名称。
如需同时应用暂存的索引修改,请选择 恢复索引 选项。
单击 应用存储项。
要删除某个 stash,请在列表中选择它,右键单击以打开上下文菜单,然后选择 丢弃。 要删除所有 stash,请选择 清除。
