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”创建 ma​​ster 分支和 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:重命名本地分支失败的主要内容,如果未能解决你的问题,请参考以下文章

在本地和远程重命名 Git 分支? [复制]

sh 重命名git分支(本地和远程)

git push重命名分支

sh 在本地和远程重命名git分支

sh 在本地和远程重命名git分支

sh 在本地和远程重命名git分支