warning: ignoring broken ref refs/remotes/origin/HEAD

GitBash

Git Problem Overview


Since a few days ago, every time I press tab key to complete branch names in bash I see the message:

> warning: ignoring broken ref refs/remotes/origin/HEAD warning: ignoring broken ref refs/remotes/origin/HEAD

For example, this is what I see when I have a branch called feature/foo and I press tab:

git checkout f

$ git checkout fwarning: ignoring broken ref refs/remotes/origin/HEAD
warning: ignoring broken ref refs/remotes/origin/HEAD
eature/

Git Solutions


Solution 1 - Git

I encountered this recently when someone on my team deleted our old development branch from the remote. I ran this command to check the status of HEAD:

$ git symbolic-ref refs/remotes/origin/HEAD
refs/remotes/origin/old_dev

This command output the name of the old development branch, which no longer exists.

I fixed the warnings using this:

$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/new_dev

(Where "new_dev" is a branch name. Replace it with the name of the branch you want HEAD to point to.)

Solution 2 - Git

This is a simpler solution than symbolic-ref.


Since you may have excluded the branch that origin/HEAD was initially pointed to.

1. List your remote branches with:

git branch -r

2. If it doesn't show in the results:

origin/HEAD -> origin/(something)

3. Just point it again with:

git remote set-head origin master

where "master" is the name of your primary (head) branch.


Running git branch -r again now shows origin/HEAD -> origin/(something) and the warning goes away.

Solution 3 - Git

>Just run the command -

#replace the <branch name> with your main branch - master, main, etc.    
git remote set-head origin <branch name>

>Enjoy!

Solution 4 - Git

Some problems arise after the local master renames main:

  • git fetch: "fatal: couldn't find remote ref refs/heads/master";
  • git branch -u origin/main main: "error: the requested upstream branch 'origin/main' does not exist";
  • git remote set-head origin main: "error: Not a valid ref: refs/remotes/origin/main";
  • git push -u origin main: "error: failed to push some refs to 'github.com:/.git'";
  • git symbolic-ref HEAD refs/heads/main or git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main or git update-ref refs/heads/main main,
    • and then git branch -r: "warning: ignoring broken ref refs/remotes/origin/HEAD";

The solution to this problem:

  1. git remote -v, copy git repository url
  2. git remote rm origin, remove remote
  3. git remote add origin <REPOSITORY_URL>, reset remote url
  4. git fetch origin
  5. git branch -u origin/main main, reset branch upstream

Solution 5 - Git

In my case the problem was the file .git\refs\remotes\origin\master that got corrupted, maybe since my computer was involuntary disconnected from power a few days ago.

I solved it by replacing the file content with the correct reference, a 40 char hex number that can be found in the file .git\FETCH_HEAD.

Solution 6 - Git

Looks like the default branch of your remote origin doesn't exists anymore.
Fix the default branch of the remote:

Solution 7 - Git

Like already answered - The warning indicates that the remote branch no longer exists, e.g. when the remote branch is merged+deleted into another branch.

In my case I had to delete my local branch, because it was not longer needed and fixing the broken ref was not possible. Therefore, git branch -d feature/.. did the job.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionsensorarioView Question on Stackoverflow
Solution 1 - GitkdechantView Answer on Stackoverflow
Solution 2 - GitPaulo CoghiView Answer on Stackoverflow
Solution 3 - GitSimon BorskyView Answer on Stackoverflow
Solution 4 - Git山茶树和葡萄树View Answer on Stackoverflow
Solution 5 - Gituser7359564View Answer on Stackoverflow
Solution 6 - GitzigarnView Answer on Stackoverflow
Solution 7 - GitKevin WallisView Answer on Stackoverflow