管理 Git 分支
在 Git 中, 分支是一种强大的机制,允许您从主开发线分岔,例如,当您需要开发某个功能,或冻结代码库的某个状态以进行发布,等等。
在 PyCharm 中,所有与分支相关的操作都在 Git 分支 弹出窗口中执行。 要调出该窗口,请在主窗口标题栏中点击带有当前已检出分支名称的 Git 小部件:

您还可以在 Git 工具窗口的 分支窗格 中管理分支,并对多个分支执行批量操作。
创建新分支
从当前分支创建新分支
在 分支 弹出窗口中,选择 新建分支 ,或在 Git 工具窗口的 分支 窗格中右键点击当前分支,然后选择 从'分支名称'新建分支。
在打开的对话框中,指定分支名称;如果您想切换到该分支,请确保选中 检出分支 选项。
一旦您开始输入新分支的名称,PyCharm 会基于现有本地分支的名称建议相关前缀。
新分支将从当前分支的 HEAD 开始。
从所选分支创建新分支
在 分支 弹出窗口或 Git 工具窗口的 分支 窗格中,选择您要从其创建新分支的本地或远程分支,并选择 从所选项新建分支。
在打开的对话框中,指定分支名称;如果您想切换到该分支,请确保选中 检出分支 选项。
从所选提交创建新分支
在 日志视图 中,选择您希望作为新分支起点的提交,并在上下文菜单中选择 新建分支。

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

或者,选择您想标记为收藏的分支,然后按 空格 。
您还可以在 Git 工具窗口的 分支 窗格中选择一个分支,然后在工具栏上点击
。
分组分支
在 分支 弹出窗口中,PyCharm 将分支和标签分为四个节点:
最近 分支节点显示最多五个最近检出的分支。
本地 分支节点列出所有本地分支。
远程 分支节点显示最新一次 获取 后可用的所有远程分支。
标签 节点列出所有可用标签,您可以检出、与工作树比较、合并、推送或删除这些标签。
此外,PyCharm 会按前缀自动分组分支,并将其存储在可展开的列表中。

要使分支按前缀分组,分支名称中的前缀应使用正斜杠
/
分隔。 例如, jd/2023.1。
要停止按前缀分组分支,或隐藏 最近 或 标签 节点,请点击 分支 弹出窗口右上角的 设置 ,然后取消选择 按前缀分组、 显示最近的分支 或 显示标签 选项。

检出分支(git-checkout)
如果您想在他人创建的分支上工作,则需要先检出该分支以创建其本地副本。
要确保拥有完整的远程分支列表,请在 分支 弹出窗口中点击 :

将分支检出为新的本地分支
在 分支 弹出窗口中,或在 Git 工具窗口的 分支 窗格中,选择您要在本地检出的分支:从 远程分支 ,或者(如果您的项目具有多个根并启用了 同步分支控制 )从 通用远程分支 选择;如果已禁用,则从 存储库 | 远程分支 选择。
在操作列表中选择 检出。
将创建并检出一个新的本地分支,并将其设置为跟踪 origin 远程分支。
可能存在这样的情况:您已经有一个与要检出的远程分支同名的本地分支。 根据不同情况,您可以通过以下方式完成检出过程:
如果不会丢失任何提交,且本地分支已跟踪该远程分支,PyCharm 将自动将本地分支重置为远程分支,然后检出。
如果本地分支包含因重置而可能丢失的提交,PyCharm 会为您提供以下选项:
删除本地提交 :PyCharm 将丢弃您的本地提交、重置本地分支并更改跟踪。
变基到远程 :PyCharm 将把您的本地分支变基到该远程分支,保留本地提交,重置本地分支并更改跟踪。
在分支之间切换
在处理多项任务时,您经常需要在分支间切换以提交不相关的更改。
在 分支 弹出窗口中,或在 Git 工具窗口的 分支 窗格中,在 本地分支 下选择要切换到的分支,并在可用操作列表中选择 检出。
对于多存储库项目,分支会按存储库自动分组。 要检出所需分支,请先在 分支 弹出窗口中选择存储库。
接下来的行为取决于您尚未提交的本地更改与要检出的分支之间是否存在冲突:
比较分支
将某个分支与当前分支进行比较
如果您想查看某个分支与当前分支的分歧情况,可以对它们进行比较。
在 分支 弹出窗口中,或在 Git 工具窗口的 分支 窗格中,选择要与当前分支比较的分支,然后选择 与当前比较。
将在 Git 工具窗口中添加一个新选项卡,列出所选分支中存在而当前分支中不存在的所有提交。
您可以点击 交换分支 链接来更改被视为比较基准的分支。
要查看两个分支中所有不同文件的列表,请按 Ctrl+A: 更改的文件窗格 将列出包含差异的所有文件。
将某个分支与工作树进行比较
除了将某个分支与当前分支进行比较,您还可以将其与当前分支的本地状态进行比较。 如果您有本地未提交的更改,这将非常有用。
在 分支 弹出窗口中,或在 Git 工具窗口的 分支 窗格中,选择要与本地工作树比较的分支,然后选择 显示与工作树的差异。
打开的 更改 工具窗口会显示与当前已检出分支相比,所选分支中不同的所有文件列表:
在所选分支中存在、但在当前分支中缺失的文件标记为灰色。
在当前分支中存在、但在所选分支中缺失的文件标记为绿色。
在所选分支与当前分支之间存在差异的文件标记为蓝色。
您可以点击 交换分支 链接来更改被视为比较基准的分支。
要查看特定文件中的差异,请选择该文件并在工具栏上点击
,或按 Ctrl+D。
要将整个文件内容应用到当前分支,请点击
。 有关详细信息,请参阅 应用单独的文件。
列出一个分支中未包含在另一个分支中的所有提交
您可以使用 双点范围表示法 ,列出所选分支中未包含在另一个分支中的所有提交。
例如,当有人在功能分支上工作并不时将主分支合并到该功能分支时,这会很有用。 使用此筛选器,您可以仅列出功能分支中的提交,而不包括主分支。
打开 Git 工具窗口 Alt+9。
在 提交窗格 中,转到 。

按照如下方式指定要比较的分支:
branch1..branch2用于列出来自branch2而未包含在branch1中的所有提交。按 Ctrl+Enter。
在此示例中,列表包含位于分支
feature1中且未包含在分支main中的提交:
观看此视频,以更好地了解如何比较分支上的更改:
删除分支
在将功能分支的更改 集成更改到主开发线之后,您可以删除不再需要的分支。
检出您将用于后续工作的分支。
在 分支 弹出窗口中,或从 Git 工具窗口的 分支 窗格中,右键点击要删除的分支,然后选择 删除。
删除分支后,右下角会显示一条通知,您可以从中还原已删除的分支:

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