Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

git

bash

People also ask

How do I fix warning ignoring broken ref refs remotes origins head?

To fix this error, remove the following file YOURPROJECT/. git/refs/remotes/origin/master, and then run git fetch to download it again. It will solve your problem.

What is remotes origin head?

What is Origin (or Remote Head) in Git? The word origin is an alias that Git created to replace the remote URL of a remote repository. It represents the default branch on a remote and is a local ref representing a local copy of the HEAD in the remote repository.


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.)


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.


Just run the command -

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

Enjoy!


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