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

时间:2014-11-07 21:18:31

标签: git github version-control

我从我的主人(起源)创建了一个分支,并将其称为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 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

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选项将删除分支。

答案 1 :(得分:3)

以下解决了这个问题:

git branch -m test-101 tmp_branch
git branch -m tmp_branch TEST-101

答案 2 :(得分:0)

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

git push test-101:TEST-101

答案 3 :(得分:0)

对于将来遇到这种情况的人(像我一样)并发现这不起作用:

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

您的分支名称中很可能包含斜杠,例如BRANCH/NAME;如果情况确实如此,您需要执行以下操作(从repo的根目录开始):

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

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