git:重命名本地分支失败
Posted
技术标签:
【中文标题】git:重命名本地分支失败【英文标题】:git: rename local branch failed 【发布时间】:2013-08-25 08:00:36 【问题描述】:我不知道为什么我重命名本地分支的尝试失败了。我基本上克隆了项目,然后我在项目中也有一个子模块,我也下载了子模块代码。但是,当我在子模块中使用 git branch
时,我有:
* (no branch)
master
代码看起来像是在另一个分支上,但输出显示它没有名称。然后我在网上搜索了如何重命名本地分支,我得到了这个:
git branch -m <newname>
在我运行这个命令后,git给了我这个错误:
error: refname refs/heads/HEAD not found
fatal: Branch rename failed
有人知道为什么会这样吗?谢谢。
【问题讨论】:
【参考方案1】:我也遇到过这个问题。原因是我在这个 git 存储库上没有任何提交。
当我运行命令git branch -M main
时。我收到以下错误消息。
error: refname refs/heads/master not found
fatal: Branch rename failed
通过以下命令添加我的第一个提交后,一切正常。
git add .
git commit -m 'Init'
【讨论】:
这就是我正在寻找的解释。上下文含糊不清,所以我对有其他答案并不感到惊讶,但做得很好,谢谢! Github 应该考虑将该部分添加到他们的指南中 是的,这是罪魁祸首!【参考方案2】:首先使用以下方式设置您的电子邮件和用户名配置:
git config --global user.email “you@example.com”
git config --global user.name “Your Name”
然后添加你的文件:
git add .
然后进行第一次提交:
git commit -m "Initial commit"
现在运行命令:
git branch -M main
这种方式对我有用。
【讨论】:
【参考方案3】:我认为这是“git init”创建 master 分支和 github 的(新)“main”的冲突。
之后:
git add .
git commit -m "first commit"
我可以git branch -M main
【讨论】:
【参考方案4】:我也遇到了这个错误,但我修复了它:
git commit -m"your commit"
前 :
git branch -M main
它工作正常
【讨论】:
【参考方案5】:您甚至可以在提交之前在本地通过几个步骤将名称从 master
更改为 main
。
-
导航到您的项目所在的目录。
在其中显示隐藏文件,因为默认情况下,
.git
将被隐藏。
在.git
内部有一个文件HEAD
,在文本编辑器中打开它。
你会看到,ref: refs/heads/master
。
够简单,把master
改成main
。
我们刚刚将 master 分支重命名为 main。只需从终端输入 git branch
即可验证这一点。
【讨论】:
这正是我想要的,谢谢!【参考方案6】:我的猜测是您不在名为“(无分支)”的分支上,而是不在分支上。
如果你是第一个结帐大师:
git checkout master
然后新建一个分支:
git checkout -b new_branch
这会让它看起来像你所期望的那样。
【讨论】:
【参考方案7】:您目前处于分离的头部状态。您必须签出一个新分支以将其与当前提交相关联:
git checkout -b new_branch
【讨论】:
你是对的!我认为 git 无法识别与一个分支同名的分支,并且您的命令正在创建一个新分支,但事实证明它有效。谢谢。 这个解决方案也适用于我认为不相关的情况。我创建了一个新的 git repo 并且没有任何提交尝试重命名主分支并得到相同的错误消息。使用git checkout -b newbranch
有效地重命名了主分支。我猜这意味着在您在新存储库中进行第一次提交之前,您处于分离的头部状态。
@frederickjh:不,在创建新存储库时,默认情况下您在 master
分支上。如果还没有提交,则可能无法重命名主分支。
@knittl,确实,当您创建新存储库时,您位于主分支上。那正是我的情况。如果没有提交,则没有指向 refs/heads/HEAD 的引用,这就是为什么在尝试重命名分支时会显示错误消息的原因。那么它是一个分离的头部状态吗?看到可能没有指向 HEAD 的指针,但是我将把它留给这里的 git 专家来解决!双关语。
如果你刚刚创建了一个 repo 并且想要推送你的代码,请使用基本命令 -> git init -> git add remote .. -> git commit -m "first commit" -> git push -u 原产地主以上是关于git:重命名本地分支失败的主要内容,如果未能解决你的问题,请参考以下文章