从几天前开始,每次tab按键在bash中完成分支名称时,我都会看到以下消息:
警告:忽略破碎的ref refs/remotes/origin/HEAD警告:忽略破碎的ref refs/remotes/origin/HEAD
例如,当我有一个名为feature/foo的分支时,我就会看到这一点,然后按tab:
git checkout f
$ git checkout fwarning: ignoring broken ref refs/remotes/origin/HEAD
warning: ignoring broken ref refs/remotes/origin/HEAD
eature/
Run Code Online (Sandbox Code Playgroud)
小智 57
最近我遇到了这个问题,当时我的团队中有人从遥控器上删除了旧的开发分支.我运行此命令来检查HEAD的状态:
$ git symbolic-ref refs/remotes/origin/HEAD
refs/remotes/origin/old_dev
Run Code Online (Sandbox Code Playgroud)
此命令输出旧的开发分支的名称,该分支不再存在.
我用这个修复了警告:
$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/new_dev
Run Code Online (Sandbox Code Playgroud)
(其中"new_dev"是分支名称.将其替换为您希望HEAD指向的分支的名称.)
Pau*_*ica 41
这是一个比symbolic-ref更简单的解决方案.
由于您可能已排除了origin/HEAD最初指向的分支.
1.列出您的远程分支:
git branch -r
Run Code Online (Sandbox Code Playgroud)
2.如果结果中没有显示:
origin/HEAD -> origin/(something)
Run Code Online (Sandbox Code Playgroud)
3.再次指出:
git remote set-head origin master
Run Code Online (Sandbox Code Playgroud)
其中"master"是主(头)分支的名称.
git branch -r现在再次运行显示origin/HEAD -> origin/(something)并且警告消失.
sim*_*bor 15
只需运行命令 -
#replace the <branch name> with your main branch - master, main, etc.
git remote set-head origin <branch name>
Run Code Online (Sandbox Code Playgroud)
享受!
本地master重命名main后出现一些问题:
git fetch:“致命:找不到远程引用 refs/heads/master”;git branch -u origin/main main: "错误: 请求的上游分支'origin/main'不存在";git remote set-head origin main:“错误:不是有效的参考:refs/remotes/origin/main”;git push -u origin main:“错误:无法将一些引用推送到'github.com:/.git'”;git symbolic-ref HEAD refs/heads/main或git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main或git update-ref refs/heads/main main,
git branch -r:“警告:忽略损坏的参考 refs/remotes/origin/HEAD”;这个问题的解决办法:
git remote -v,复制git仓库urlgit remote rm origin, 删除遥控器git remote add origin <REPOSITORY_URL>,重置远程urlgit fetch origingit branch -u origin/main main, 重置上游分支