更新时间:2025-11-27 GMT+08:00
分享

管理分支

分支是版本管理工具中最常用的一种管理手段,使用分支可以把项目开发中的几项工作彼此隔离开来使其互不影响,当需要发布版本之前再通过分支合并将其进行整合。

在代码托管服务/Git仓库创建之初都会默认生成一条名为master的分支,一般作为最新版本分支使用,开发者可以随时手动创建自定义分支以应对实际开发中的个性场景。

在控制台上新建分支

  1. 进入仓库列表。
  2. 单击仓库名称进入仓库详情。
  3. 切换到“代码”页签下的“分支”子页签,进入分支列表页面。
  4. 单击“新建分支”按钮,用户在弹出的窗口中选择要基于哪个分支或Tag进行创建,也可以输入Commit ID,基于Commit ID创建新的分支。
  5. 填写“分支名称”,分支名不支持以“-”“.”“refs/heads/”“refs/remotes/”“/”开头,不支持空格和[ \ < ~ ^ : ? * ! ( ) ' " | $ & ;等特殊字符,不支持以“.”“/”“.lock”结尾,不能有两个连续的点“..”,不能包含序列“@{”

    需要注意:当仓库中已存在同名称的分支/Tag或者上级分支/Tag时,则该分支不可被创建。

  6. 可为新建的分支填写“描述”,选择可“关联工作项”。当前Repo可关联的工作项类别请参考E2E设置
  7. 单击“确定”按钮,即可完成分支的新建。

在控制台中管理分支

  • 只有开启IP白名单的机器才可以从界面下载源码压缩包。
  • 如果用户误删了分支,可提交工单联系技术支持处理。

在控制台的分支列表中可以进行如下操作。

  • 分支筛选
    • 我的分支:显示我创建的所有分支,按最近提交时间排序,最新提交的分支将更靠前。
    • 活跃分支:显示过去一个月内存在开发活动的分支,按最近提交时间排序,最新提交的分支将更靠前。
    • 过时分支:显示过去一个月内没有任何活动的分支,按最近提交时间排序,最新提交的分支将更靠前。
    • 所有分支:显示所有分支,“默认分支”将显示在最前面,其余分支按最近提交时间排序,最新提交的分支将更靠前。
  • 单击某个“分支名称”,可跳转到该分支的文件列表,可查看该分支的内容、历史等信息。
  • 单击某个分支的提交ID,可跳转到该分支的最新一次提交记录详情中,可查看本次提交的内容。
  • 单击分支名称前面的勾选框,单击“批量删除”,可批量删除分支。
  • 单击某个,可对该分支进行工作项关联操作。
  • 单击某个,可定位到“对比”子页签,可以对将此分支与其它分支进行差异对比。
  • 单击某个,可下载该分支的压缩包到本地。
  • 单击某个,可以跳转到“合并请求”页签,可对该分支创建分支合并请求。
  • 单击某个,可跳转到仓库设置中设置该分支为保护分支。
  • 单击某个,可以按提示操作,将该分支进行删除。

关于分支的常用Git命令

  • 新建分支
    git branch <分支名称>           #在本地仓库基于目前的工作区,创建一条分支
    示例如下:
    git branch branch001            #在本地仓库基于目前的工作区,创建一条名为 branch001 的分支

    无回显则为创建成功,如下图为使用了重复名称创建,更换一个名称再创建即可。

  • 切换分支
    切换分支可以理解为将该分支的文件内容检出到当前的工作目录。
    git checkout <分支名称>        #切换到指定分支

    示例如下:

    git checkout  branch002        #切换到名为 branch002 的分支

    下图为切换成功:

  • 新建并直接切换到新建的分支

    有一种快速的操作办法,可以直接新建并切换到新建出来的分支,其用法如下:

    git checkout -b <分支名称>     #在本地仓库基于目前的工作区,创建一条分支,并直接切换到该分支

    示例如下:

    git checkout -b branch002      #在本地仓库基于目前的工作区,创建一条名为 branch002 的分支,并直接切换到该分支

    下图为该命令执行成功:

  • 查看分支

    用户可以使用对应的命令查看本地仓库的分支、远程仓库的分支,亦或是全部,这组命令只是将分支名称罗列,如果想查看分支内的具体文件,请使用切换分支。

    git branch                              #查看本地仓库分支
    git branch -r                           #查看远程仓库分支
    git branch -a                           #同时查看本地仓库与远程仓库的分支

    如下图,分别依次执行了以上三种命令,Git清晰的将本地仓库与远程仓库中的分支以不同的样式展现(远程仓库分支展现形式 remote/远程仓库别名/分支名)。

  • 合并分支

    当一条分支上的开发任务完成了,有时需要将其合并到另一条分支,以做功能归档,合并分支可以理解为将另一条分支最新的修改同步到当前所处分支,其用法如下:

    git merge <要合并过来的分支的名称>        #将一条分支合并到当前的分支中
    分支合并前一般要先切换到被合入的分支,下面以将branch002 合入到master分支为例进行演示:
    git checkout master                       #切换到master分支
    git merge branch002                       #将名为 branch002 的分支合入到master分支

    如下图是上面命令的执行效果,可以看到合并成功,合并了一个文件的变化,其变化是新增了3行内容。

    有时在合并时会提示出现了文件修改冲突(如下图“fileOnBranch002.txt”这个文件在合并时冲突了)。

    解决方法是打开这个冲突的文件,手动编辑以将有冲突的代码(如下图)进行取舍,解决后保存,再进行一次 add 和 commit 操作,将其结果存储进本地仓库。

  • 删除本地分支
    git branch -d <分支名>           

    示例如下:

    git branch -d branch002          #删除本地仓库中,名为 branch002 的分支,下图为执行成功

  • 删除远程仓库分支
    git push <远程仓库地址或别名> -d <分支名>               

    示例如下:

    git push HTTPSOrigin -d branch002        #从别名为HTTPSOrigin 的远程仓库中删除名为branch002 的分支,下图为删除成功

  • 将本地新建的分支推送到远程仓库
    git push <远程仓库地址或别名> <分支名>

    示例如下:

    git push HTTPSOrigin branch002        #将本地名为 branch002 的分支,推送到别名为HTTPSOrigin的远程仓库,下图为推送成功       

如果推送失败请检查连通性:

确保用户的网络可以访问代码托管服务。

请在Git客户端使用如下测试命令验证网络连通性。
1
ssh -vT git@********.com

如果返回内容含有“connect to host **********.com port 22: Connection timed out”,则用户的网络被限制,无法访问代码托管服务,请求助用户本地所属网络管理员。

相关文档