管理 Git 分支
在 Git 中, branching 是一种强大的机制,可让您从主开发线上分支,例如当您需要处理某个功能或冻结代码库的特定状态以用于发布等情况。
在 WebStorm 中,所有分支的操作均在 Git 分支 弹出窗口中执行。 要打开该窗口,请在主窗口标题栏中单击当前检出分支名称的 Git 小部件:

您还可以在 分支窗格 的 Git 工具窗口中管理分支并对多个分支执行批量操作。

创建新分支
从当前分支创建新分支
在 分支 弹出窗口中选择 新建分支 ,或在 分支 窗格的 Git 工具窗口中右键点击当前分支并选择 从“branch name”新建分支。
在打开的对话框中指定分支名称,如果希望切换到该分支,请确保选中 检出分支 选项。
开始输入新分支名称后,WebStorm 会根据现有本地分支的名称建议相关前缀。
新分支将从当前分支的 HEAD 开始。
从所选分支创建新分支
在 分支 弹出窗口或 分支 窗格的 Git 工具窗口中,选择要从中创建新分支的本地或远程分支,并选择 从选定项新建分支。
在打开的对话框中指定分支名称,如果希望切换到该分支,请确保选中 检出分支 选项。
从所选提交创建新分支
在 日志视图 中,选择要作为新分支起点的提交,并在上下文菜单中选择 新建分支。

在打开的对话框中指定分支名称,如果希望切换到该分支,请确保选中 检出分支 选项。
重命名分支
在 分支 弹出窗口或 分支 窗格的 Git 工具窗口中,选择要重命名的分支,在上下文菜单中选择 重命名。
在打开的对话框中,将分支名称更改为所需名称。
请注意,此操作仅会重命名本地分支。 如果希望本地和远程跟踪分支具有相同的新名称,您需要创建一个新的远程分支并开始跟踪它。
要停止跟踪名称未更改的当前远程分支,请在同一 重命名分支 对话框中选择 取消设置上游分支 选项。
下次推送更改时,将自动创建并跟踪新的远程分支。
推送更改后,您可以 删除旧名称的远程分支。
将分支标记为收藏
如果您有许多分支,可能只希望查看收藏分支。 默认情况下, main 分支已被标记为收藏。 收藏分支始终显示在 分支 弹出窗口顶部和 分支 窗格的 Git 工具窗口中。
要将分支标记为收藏,在 分支 弹出窗口中将鼠标悬停在分支名称上,并单击左侧出现的空心星形图标:

或者,选择要标记为收藏的分支并按下 空格键 。
您还可以在 分支 窗格的 Git 工具窗口中选择某个分支,并在工具栏中单击
。
分组分支
在 分支 弹出窗口中,WebStorm 会将分支和标签保存在四个节点中:
最近使用 分支节点显示最多五个最近检出的分支。
本地 分支节点列出所有本地分支。
远程 分支节点显示上次 fetch 后可用的所有远程分支。
标签 节点列出所有可用标签,您可以将其检出、与工作区比较、合并、推送或删除。
此外,WebStorm 会根据前缀自动对分支进行分组,并将其存储在可展开列表中。

为了对分支进行分组,分支名称中的前缀应使用正斜杠
/
进行分隔。 例如: 2023.3/formatting。
若要停止按前缀对分支分组,或隐藏 最近使用 或 标签 节点,请单击 设置 ,该控件位于 分支 弹窗的右上角,然后取消选择 按前缀分组、 显示最近的分支 或 显示标签 选项。

检出分支(git-checkout)
如果您想要处理他人创建的分支,需先签出该分支以在本地创建其副本。
为确保显示完整的远程分支列表,请在 分支 弹窗中点击 :

将分支检出为新的本地分支
在 分支 弹窗中或 分支 工具窗口的 Git 面板中,从 远程分支 中选择要在本地签出的分支,或者如果项目包含多个根且启用了 synchronous branch control ,则从 常用远程分支 中选择;若未启用,则从 版本库 | 远程分支 中选择。
从操作列表中选择 检出。
将创建一个新的本地分支,对其进行签出并设置为跟踪 origin 的远程分支。
在某些情况下,您可能已经拥有与要签出的远程分支同名的本地分支。 根据具体情况,您可以按照以下方式完成签出流程:
如果不会丢失任何提交,且本地分支已跟踪远程分支,则 WebStorm 会自动将本地分支重置为远程分支,然后进行签出。
如果本地分支包含在重置时可能会丢失的提交,WebStorm 将为您提供以下选项:
删除本地提交 :WebStorm 将放弃本地提交,重置本地分支并更改跟踪设置。
变基到远程 :WebStorm 会将本地分支变基到远程分支上,保留本地提交,重置本地分支并更改跟踪设置。
在分支之间切换
在处理多项任务时,您常常需要在分支之间切换以提交无关更改。
在 分支 弹窗中或 分支 工具窗口的 Git 面板中,在 本地分支 下选择要切换到的分支,并从可用操作列表中选择 检出。
对于多版本库项目,分支会按版本库自动进行分组。 要签出所需分支,请在 分支 弹窗中先选择版本库。
接下来的操作取决于您尚未提交的本地更改与即将签出的分支之间是否存在冲突:
如果工作区是干净的(即没有未提交的更改),或者本地更改与指定的分支无冲突,则该分支将被签出(WebStorm 窗口右下角会出现通知)。
如果签出操作将覆盖本地更改,WebStorm 会显示阻止您签出所选分支的文件列表,并建议您在 Force Checkout 与 Smart Checkout 之间进行选择。
如果单击 强制检出 ,则会覆盖您的本地未提交更改并导致更改丢失。
如果单击 智能检出 ,WebStorm 会将未提交更改 shelve ,签出所选分支,然后恢复更改。 如果在恢复过程中出现冲突,您将被提示合并更改。 如需了解更多信息,请参阅 Resolve conflicts。
比较分支

将某个分支与当前分支进行比较
如果想要检查某个分支与当前分支的分歧情况,您可以对其进行比较。
在 分支 弹窗中或 分支 工具窗口的 Git 面板中,选择要与当前分支比较的分支,并选择 与当前分支比较。
将在 Git 工具窗口中添加一个新标签页,列出所选分支中存在但当前分支中不存在的所有提交。
您可以点击 切换分支 链接更改作为比较基础的分支。
要查看两个分支中所有不同的文件列表,请按 Ctrl+A: Changed Files 面板 会列出所有存在差异的文件。
将某个分支与工作区进行比较
除了与当前分支进行比较外,您还可以将目标分支与当前分支的本地状态进行比较。 如果您有未提交的本地更改,这将非常有用。
在 分支 弹窗中或 分支 工具窗口的 Git 面板中,选择要与本地工作区比较的分支,并选择 显示与工作树的差异。
打开的 更改 工具窗口将显示所选分支与当前签出的分支之间不同的所有文件:

在所选分支中存在而在当前分支中缺失的文件会以灰色标记。
在当前分支中存在而在所选分支中缺失的文件会以绿色标记。
在所选分支与当前分支之间存在差异的文件会以蓝色标记。
您可以点击 切换分支 链接更改作为比较基础的分支。
要查看特定文件中的差异,请选择该文件,然后点击工具栏上的
,或按下 Ctrl+D。
要将整个文件内容应用到当前分支,请点击
。 如需了解更多信息,请参阅 应用单个文件。
列出某分支中未包含在另一分支中的所有提交
您可以使用 two-dot range notation 列出所选分支中但不在另一个分支中的所有提交。
例如,当某人在一个功能分支上工作,且有时会将主分支合并到此功能分支中时,该功能会非常有用。 使用此筛选器,您可以仅列出功能分支中的提交,而不包括主分支。
打开 Git 工具窗口 Alt+9。
在 Commits 面板 中,前往 。

按照以下方式指定要比较的分支:
branch1..branch2,用于列出branch2中而不在branch1中的所有提交。按下 Ctrl+Enter。
在此示例中,列表包含在分支
feature1中但未包含在分支main中的提交:
观看此视频,以更直观地了解如何比较与您分支的更改:
删除分支
在将功能分支中的更改 集成到主开发线上之后,您可以删除不再需要的分支。
检出准备继续使用的分支。
在 分支 弹出窗口中或 分支 面板的 Git 工具窗口中,右键单击要删除的分支,然后选择 删除。
删除分支后,会在右下角显示通知,您可以通过该通知恢复已删除的分支:

如果分支包含尚未合并到其上游分支或当前分支的提交,仍将立即删除该分支(相当于命令 git branch --D 或 git branch --delete --force ),但通知中也将包含一个链接,允许您查看未合并的提交。
如果已删除的分支跟踪了远程分支,则该通知中还将提供一个链接,以移除远程分支。
配置同步分支控制
如果您拥有一个多根仓库,可以配置 WebStorm 使其在执行所有分支操作(例如检出、合并、删除等)时,在所有根中同时进行,就像使用单个仓库一样。
按下 Ctrl+Alt+S 打开设置,然后选择 。
选择 对所有根执行分支操作 选项(请注意,仅当项目具有多个根时,此选项才可用)。
如果某个操作在至少一个仓库中失败,WebStorm 会通过建议您在操作成功的仓库中回滚该操作,以防止分支发生分歧。