本周刚遇到的问题,创建新分支的时候,报错信息如下:

cannot lock ref 'refs/heads/***/***': 'refs/heads/***' exists; cannot create 'refs/heads/***/***'

1、问题原因

分为两种情况:一是本地已经存在同名分支;二是已经存在同名模式的分支。

很明显,从上图的报错来看,属于第二种情况。

项目中已经存在了hsl的分支,新分支是hsl/20220721,对于这种情况,我个人理解,可以把hsl分支当成一个文件,本来这个文件有自己的内容,现在有一个新分支hsl/20220721,hsl就变成了文件夹,20220721变成了文件,这会直接影响到原来的hsl分支。

2、解决方案

以上述截图为例:

方案一:删除分支

(1)删除远程hsl分支

// 这里的remote一般是origin或者upstream
// 可以通过git remote -v 检查远程分支名称,确认需要删除分支的哪个远程位置
git push <remote> --delete hsl

(2)删除本地分支

// 注意:
// 1、执行此命令的时候不要在hsl分支上哦,git是不允许删除我们当前所在的分支的
// 2、-d表示当分支已经被推送并与远程分支合并时才会删除,如果分支未被推送或合并,请使用-D
git branch -d hsl

方案二:修改分支名称 

具体操作步骤见 如何修改分支名称 

接下来就可以正常的新建分支啦。 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐