如何将本地Git分支名称更改为大写

5
我从我的主分支(源)创建了一个分支,并将其命名为TEST-101(大写)。 然后我在我的分支上工作,提交并将更改推送到源。 当我登录Github时,我可以看到我创建的分支。
我使用git bash检出了我的分支的本地版本,但我以小写输入了它:test-101。 然后我使用Git Gui并将更改提交到以小写字母键入的分支,在我尝试推送这些更改时,它给了我一个错误:
POST git-receive-pack (390618 bytes)
remote: error: failed to lock refs/heads/test-101
Pushing to ht://example/example/example/example.git
To ht://example/example/example/example.git
! [remote rejected] test-101 -> test-101 (failed to lock)
error: failed to push some refs to 'http://example/example/example/example.git'

请注意,我已更改错误中的一些私人信息。

我进行了一些阅读,看起来我的本地分支是小写的,而远程分支是大写的,这可能会导致问题?

4个回答

9
以下解决了问题:
git branch -m test-101 tmp_branch
git branch -m tmp_branch TEST-101

4
您可以执行以下操作:
git branch -m test-101 tmp_branch
git checkout tmp_branch
git merge TEST-101 // make sure your data is up to date
git branch -D TEST-101
git branch -m tmp_branch TEST-101

-m选项用于重命名分支,-D选项则用于删除分支。


2

如果未来有人(像我一样)发现这个方法不起作用:

git branch -m branch_name tmp
git branch -m tmp BRANCH_NAME

你的分支名称很可能包含斜杠,例如BRANCH/NAME;如果是这种情况,你需要执行以下操作(从仓库的根目录开始):

git branch -m branch/name tmp
mv .git/refs/heads/branch .git/refs/heads/BRANCH
git branch -m tmp BRANCH/NAME

与此同时,我已将此提交至Git邮件列表,并等待回复。


0

将本地分支重命名为与远程分支的名称相匹配(包括大小写)将解决此问题,但您也可以显式地指定本地和远程分支进行git push

git push test-101:TEST-101

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接