108

我不知道为什么我重命名本地分支的尝试失败了。我基本上克隆了项目,然后我在项目中也有一个子模块,我也下载了子模块代码。但是,当我git branch在子模块中使用时,我有:

* (no branch)
  master

代码看起来像我在另一个分支上,但输出显示它没有名称。然后我在网上搜索了如何重命名本地分支,我得到了这个:

git branch -m <newname>

在我运行这个命令之后,git给了我这个错误:

error: refname refs/heads/HEAD not found
fatal: Branch rename failed

有人知道为什么会这样吗?谢谢。

4

7 回答 7

169

I get into this issue too. The reason is that I didn't have any commit on this git repository.

When I run the command git branch -M main. I get the following error message.

error: refname refs/heads/master not found
fatal: Branch rename failed

After I add my first commit by the following command, all things work.

git add .
git commit -m 'Init'
于 2020-10-05T08:55:29.297 回答
113

你目前处于超然状态。您必须签出一个新分支以将其与当前提交相关联:

git checkout -b new_branch
于 2013-08-22T14:17:09.327 回答
29

我认为这是“git init”创建master分支和github的(新)“main”的冲突。

后:

git add .
git commit -m "first commit" 

我以前可以git branch -M main

在此处输入图像描述

于 2020-10-05T19:29:46.497 回答
11

您甚至可以在提交之前在本地通过几个步骤将名称从更改为mastermain

  1. 导航到您的项目所在的目录。
  2. 在其中,显示隐藏文件,因为默认情况下.git会隐藏。
  3. 里面.git有一个文件,HEAD用文本编辑器打开。你会看到,ref: refs/heads/master.
  4. 很简单,更改mastermain.

我们刚刚将 master 分支重命名为 main。仅通过git branch从终端输入来验证这一点。

于 2020-11-10T12:38:51.067 回答
7

我的猜测是您不在名为“(无分支)”的分支上,而是不在分支上。

如果您首先结帐大师:

git checkout master

然后创建一个新分支:

git checkout -b new_branch

这会让它看起来像你期望的那样。

于 2013-08-22T14:17:08.607 回答
7

首先使用以下方式设置您的电子邮件和用户名配置:

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

它以这种方式对我有用。

于 2021-07-19T09:48:16.487 回答
2

我也遇到了这个错误,但我用以下方法修复了它: git commit -m"your commit" before : git branch -M main 并且它工作正常

于 2021-06-10T16:50:57.377 回答