管理 Git 分支
在 Git 中,分支是一种强大的机制,它可以让你脱离主开发线,例如,当你需要处理一个特性,或者冻结代码库的某个状态以进行发布时,等等。
在 PhpStorm 中,所有带有分支的操作都在Git 分支弹出窗口中执行:要调用它,请单击状态栏中的 Git 小部件(它显示当前签出的分支的名称):
您还可以在Git工具窗口的“分支”窗格中管理分支并使用多个分支执行批处理操作。
将分支标记为收藏夹
如果您有很多分支,您可能只想查看您最喜欢的分支。默认情况下,主分支被标记为收藏。最喜欢的分支总是显示在分支弹出窗口的顶部和 Git工具窗口的分支窗格中。
要将分支标记为收藏,在分支弹出窗口中,将鼠标光标悬停在分支名称上,然后单击左侧显示的星形轮廓:
您还可以 在Git工具窗口的“分支”窗格中选择一个分支,然后单击工具栏上的 。
要隐藏不喜欢的分支,请单击分支弹出窗口底部的仅显示收藏夹。
创建新分支
从当前分支创建一个新分支
在Branches弹出窗口中,选择New Branch或在Git工具窗口工具窗口的Branches窗格中右键单击当前分支, 然后选择New Branch。
在打开的对话框中,指定分支名称,如果要切换到该分支,请确保选中Checkout 分支选项。
新分支将从当前分支 HEAD 开始。
从选定的分支创建一个新分支
在分支弹出窗口或 Git工具窗口的分支窗格中,选择要从中启动新分支的本地或远程分支,然后从 Selected 中选择 New Branch。
在打开的对话框中,指定分支名称,如果要切换到该分支,请确保选中Checkout 分支选项。
从选定的提交创建一个新分支
在日志视图中,选择要作为新分支起点的提交,然后从上下文菜单中选择新分支。
在打开的对话框中,指定分支名称,如果要切换到该分支,请确保选中Checkout 分支选项。
签出分支(git-checkout)
签出一个分支作为一个新的本地分支
如果您想在其他人创建的分支上工作,您需要检查它以创建该分支的本地副本。
要确保您拥有远程分支的完整列表,请在分支弹出窗口中单击Fetch :
在“分支”弹出窗口或 Git工具窗口的“分支”窗格中,从Remote Branches或Common Remote Branches (如果您的项目有多个根并启用同步分支控制)或从Repositories |中选择要在本地签出的分支。远程分支(如果已禁用)。
从操作列表中选择Checkout 。
如有必要,为此分支输入一个新名称,或保留与远程分支对应的默认名称,然后单击OK。
新的本地分支将设置为跟踪原始远程分支。
在分支之间切换
在多任务处理时,您经常需要在分支之间跳转以提交不相关的更改。
在分支弹出窗口或 Git工具窗口的分支窗格中,在本地分支下选择要切换到的分支,然后从可用操作列表中选择签出。
接下来会发生什么取决于您尚未提交的本地更改与您要签出的分支之间是否存在冲突:
如果你的工作树是干净的(这意味着你没有未提交的更改),或者你的本地更改与指定的分支不冲突,则该分支将被检出(PhpStorm 窗口的右下角会弹出一个通知)。
如果您的本地更改将被 checkout 覆盖,PhpStorm 会显示阻止您检出所选分支的文件列表,并建议在Force Checkout和Smart Checkout之间进行选择。
如果您单击Force Checkout,您的本地未提交更改将被覆盖,并且您将丢失它们。
如果单击Smart Checkout,PhpStorm 将搁置未提交的更改,签出选定的分支,然后取消搁置更改。如果在取消搁置操作期间发生冲突,系统会提示您合并更改。有关详细信息,请参阅解决冲突。
比较分支
将分支与当前分支进行比较
如果您想检查一个分支与当前分支的分歧,您可以比较它们。
从分支弹出窗口或 Git工具窗口的分支窗格中,选择要与当前分支进行比较的分支,然后选择与当前比较。
Git工具窗口中将添加一个新选项卡,其中列出了存在于所选分支中但不存在于当前分支中的所有提交。
您可以单击交换分支链接来更改哪个分支被视为您正在比较另一个分支的基础。
要查看两个分支中所有不同文件的列表,请单击Ctrl+A:Changed Files 窗格将列出包含差异的所有文件。
将分支与工作树进行比较
除了将分支与当前分支进行比较之外,您还可以将其与当前分支的本地状态进行比较。如果您有本地未提交的更改,这很有用。
从分支弹出窗口或 Git工具窗口的分支窗格中,选择要与本地工作树进行比较的分支,然后选择Show Diff with Working Tree。
打开的更改工具窗口显示所选分支中与当前签出的分支相比不同的所有文件的列表:
所选分支中存在但当前分支中缺少的文件用灰色标记。
当前分支中存在但所选分支中缺少的文件用绿色标记。
包含所选分支和当前分支之间差异的文件用蓝色标记。
您可以单击交换分支链接来更改哪个分支被视为您正在比较另一个分支的基础。
要查看特定文件中的差异,请选择它并单击工具栏上的 ,或按Ctrl+D。
要将整个文件内容应用到当前分支,请单击(有关详细信息,请参阅应用单独的文件)。
删除分支
将功能分支的更改集成到开发主线后,您可以删除不再需要的分支。
查看您将用于进一步工作的分支。
在分支弹出窗口中或从 Git工具窗口的分支窗格中,选择要删除的分支并选择删除。
删除分支后,右下角会显示一条通知,您可以从中恢复已删除的分支:
如果分支包含尚未合并到其上游分支或当前分支的提交,它仍然会立即被删除(相当于git branch --D
orgit branch --delete --force
命令),但通知中还会包含一个链接,允许您查看未合并的提交.
如果删除的分支正在跟踪远程分支,则此通知中还会有一个链接以删除远程分支。
配置同步分支控制
如果您有一个多根存储库,您可以将 PhpStorm 配置为在所有根上同时执行所有分支操作(例如签出、合并、删除等),就像它是单个存储库一样。如果操作至少在其中一个存储库中失败,PhpStorm 会建议您在成功的存储库中回滚此操作,从而防止分支出现分歧。
按Ctrl+Alt+S打开 IDE 设置并选择版本控制 | 吉特。
选择在所有根上执行分支操作选项(请注意,此选项仅在您的项目有多个根时可用)。