GoLand 2025.2 Help

管理 Git 分支

在 Git 中, branching 是一种强大的机制,允许从主开发线上分离,例如用于开发某个功能、冻结代码库的特定状态以进行发布等。

在 GoLand 中,所有分支的操作均可在 Git 分支 弹出窗口中执行。 要打开该窗口,请在主窗口标题栏中单击当前检出分支名称旁的 Git 小部件:

Git 小部件

您还可以在 Branches 窗格 中管理分支并对多个分支执行批量操作,相关窗格位于 Git 工具窗口中。

创建新分支

从当前分支创建新分支

  1. 在 分支 弹出窗口中,选择 新建分支 ,或者在 Git 工具窗口的 分支 窗格中右键单击当前分支并选择 从“branch name”新建分支。

  2. 在打开的对话框中指定分支名称,并确保已选择 检出分支 选项(若要切换到该分支)。

    一旦开始输入新分支的名称,GoLand 会根据现有本地分支名称建议相关前缀。

    新分支将从当前分支的 HEAD 开始。

从选定分支创建新分支

  1. 在 分支 弹出窗口或 分支 面板中,从 Git 工具窗口选择要基于其创建新分支的本地或远程分支,然后选择 从所选项新建分支。

  2. 在打开的对话框中指定分支名称,并确保已选择 检出分支 选项(若要切换到该分支)。

从选定提交创建新分支

  1. 在 日志视图 中,选择要作为新分支起点的提交,并从上下文菜单中选择 新建分支。

    在日志选项卡中从选定提交创建的新分支
  2. 在打开的对话框中指定分支名称,并确保已选择 检出分支 选项(若要切换到该分支)。

重命名分支

  1. 在 分支 弹出窗口或 分支 面板中的 Git 工具窗口中,选择要重命名的分支,并在上下文菜单中选择 重命名。

  2. 在打开的对话框中,将分支名称更改为所需名称。

    请注意,此操作仅重命名本地分支。 如果希望本地分支与远程跟踪分支具有相同的新名称,您需创建新的远程分支并开始跟踪该分支。

  3. 要停止跟踪仍保留原始名称的当前远程分支,请在同一 重命名分支 对话框中选择 取消设置上游分支 选项。

    下一次推送更改时,将自动创建并跟踪新的远程分支。

    推送更改后,您可以 删除保留旧名称的远程分支。

将分支标记为收藏

如果您有很多分支,可能希望仅查看收藏分支。 main 分支默认被标记为收藏。 收藏分支始终显示在 分支 弹出窗口和 Git 工具窗口的 分支 面板顶部。

  • 要将分支标记为收藏,请在 分支 弹出窗口中,将鼠标悬停在分支名称上,然后单击左侧出现的星形轮廓图标:

    收藏分支

    或者,选择要标记为收藏的分支并按 空格键 。

    您还可以在 分支 面板中选择某个分支,然后在 Git 工具窗口的工具栏上单击 星形图标。

分组分支

在 分支 弹出窗口中,GoLand 将分支和标签保存在四个节点中:

  • 最近 分支节点显示最近检出的最多五个分支。

  • 本地 分支节点列出所有本地分支。

  • 远程 分支节点显示上次 fetch 后可用的所有远程分支。

  • 标记 节点列出所有可检出、与工作树比较、合并、推送或删除的标签。

此外,GoLand 会自动按前缀对分支进行分组,并将其保存在可展开列表中。

在“分支”弹出窗口中按前缀分组的分支

若要实现分支分组,分支名称中的前缀应以正斜杠 / 分隔。 例如: jd/2023.1。

要停止按前缀对分支进行分组或隐藏 最近 或 标记 节点,请点击 齿轮图标设置 ,该按钮位于 分支 弹窗的右上角,然后取消选择 按前缀分组、 显示最近的分支 或 显示标记 选项。

“分支”弹出窗口中的“按前缀分组”选项

签出分支(git-checkout)

如果您想在他人创建的分支上工作,必须先检出该分支,以创建其本地副本。

为了确保拥有完整的远程分支列表,请在 分支 弹窗中点击 获取图标:

获取图标

将分支检出为新的本地分支

  1. 在 分支 弹窗或 分支 面板的 Git 工具窗口中,从 远程分支 中选择要在本地检出的分支;如果项目具有多个根目录并启用了 synchronous branch control ,请从 常见远程分支 中选择;如果未启用,则从 版本库 | 远程分支 中选择。

  2. 从操作列表中选择 检出。

将创建一个新的本地分支,检出该分支,并设置为跟踪 origin 远程分支。

您可能已经拥有一个名称与要检出的远程分支相同的本地分支。 根据具体情形,以下是完成检出流程的方法:

  • 如果不会丢失提交,并且本地分支已跟踪远程分支,GoLand 会自动将本地分支重置为远程分支,并将其检出。

  • 如果本地分支包含因重置而可能丢失的提交,GoLand 会提供以下选项:

    • 删除本地提交 :GoLand 将放弃本地提交,重置本地分支并修改跟踪设置。

    • 变基到远程 :GoLand 会将您的本地分支变基到远程分支上,保留本地提交,重置本地分支并修改跟踪设置。

在分支之间切换

在处理多个任务时,您经常需要在各个分支之间切换以提交不相关的更改。

  1. 在 分支 弹窗或 分支 面板中的 Git 工具窗口中,从 本地分支 下选择要切换到的分支,并从可用操作列表中选择 检出。

    对于多仓库项目,分支会自动按仓库进行分组。 如果要检出所需分支,请先在 分支 弹窗中选择对应仓库。

  2. 接下来的行为取决于您的本地未提交更改是否与要检出的分支存在冲突:

    • 如果工作区干净(即没有未提交的更改),或者本地更改不会与指定分支冲突,该分支将被检出(右下角会弹出通知窗口 GoLand)。

    • 如果检出过程中将覆盖您的本地更改,GoLand 会显示阻止您检出所选分支的文件列表,并提示您在 Force Checkout 与 Smart Checkout 之间进行选择。

      如果点击 强制检出 ,本地未提交的更改将被覆盖,且无法恢复。

      如果您点击 智能检出 ,GoLand 将 搁置未提交的更改,检出所选的分支,然后取消搁置这些更改。 如果在取消搁置操作期间发生冲突,系统将提示您合并这些更改。 如需了解详情,请参阅 解决冲突。

比较分支

将某个分支与当前分支进行比较

如果您想查看某个分支与当前分支的分叉情况,您可以对它们进行比较。

  1. 在 分支 弹出窗口或 分支 面板中的 Git 工具窗口中,选择要与当前分支比较的分支,然后选择 与当前分支对比。

    将在 Git 工具窗口中添加一个新标签,列出所选分支中存在而当前分支中没有的所有提交。

    您可以点击 交换分支 链接,以更改用作其他分支比较基准的分支。

  2. 要查看两个分支中所有不同文件的列表,请按 Ctrl+A: 已更改文件面板 将列出所有存在差异的文件。

将分支与工作树进行比较

除了将某个分支与当前分支进行比较外,您还可以将其与当前分支的本地状态进行比较。 如果您有本地未提交的更改,这将很有用。

  • 在 分支 弹出窗口或 分支 面板中的 Git 工具窗口中,选择要与本地工作区树进行比较的分支,然后选择 显示与工作树的差异。

    打开的 更改 工具窗口将显示一个列表,列出所选分支与当前检出分支之间不同的所有文件:

    • 所选分支中存在、但当前分支中缺失的文件将以灰色标记。

    • 当前分支中存在、但所选分支中缺失的文件将以绿色标记。

    • 所选分支与当前分支之间存在差异的文件将以蓝色标记。

    您可以点击 交换分支 链接,以更改用作其他分支比较基准的分支。

    • 要查看特定文件中的差异,请选择该文件并点击工具栏上的 diff 图标 ,或按 Ctrl+D。

    • 要将整个文件内容应用到当前分支,请点击 从分支获取图标。 有关详细信息,请参阅 应用单独文件。

列出一个分支中未包含在另一个分支中的所有提交

您可以使用 two-dot range notation 列出所选分支中未包含在另一个分支中的所有提交。

例如,当某人正在一个功能分支上工作,并不时地将主分支合并到该功能分支时,这个功能会非常有用。 此过滤器可用于仅列出功能分支中的提交,而不是主分支。

  1. 打开 Git 工具窗口 Alt+9。

  2. 在 提交面板 中,转到 分支 | 选择。

    “提交”面板中“分支”筛选器的上下文菜单
  3. 按如下方式指定要比较的分支: branch1..branch2 以列出 branch2 中未包含在 branch1 中的所有提交。

  4. 按 Ctrl+Enter。

    在此示例中,列表包含分支 feature1 中且不包含在分支 main 中的提交:

    筛选提交列表

观看此视频以更好地了解如何比较分支中的更改:

删除分支

在您将功能分支中的更改 集成到主开发线之后,便可删除不再需要的分支。

  1. 检出一个将用于后续工作的分支。

  2. 在 分支 弹出窗口或 分支 面板中的 Git 工具窗口中,右键点击要删除的分支,并选择 删除。

删除分支后,界面右下角将显示一条通知,您可以通过该通知恢复被删除的分支:

已删除分支通知

如果该分支包含尚未合并到其上游分支或当前分支的提交,它仍会立即被删除(等同于 git branch --D 或 git branch --delete --force 命令),但通知中还会包含一个链接,允许您查看未合并的提交。

如果被删除的分支跟踪了远程分支,通知中还会包含一个链接,用于删除该远程分支。

配置同步分支控制

如果您拥有一个多根目录的版本库,您可以将 GoLand 配置为在所有根目录上同时执行所有分支操作(如检出、合并、删除等),仿佛这是一个单一的版本库。

  1. 按 Ctrl+Alt+S 打开设置,然后选择 版本控制 | Git。

  2. 选择 对所有根目录执行分支操作 选项(请注意,仅当项目包含多个根目录时,此选项才可用)。

如果某个操作在至少一个版本库中失败,GoLand 将建议您在操作成功的版本库中回滚该操作,以防止分支发生分歧。

最后修改日期: 2025年 9月 26日