git: How to delete a local ref branch?

71.6k views Asked by At

I have bit of a difficulty in deleting a local ref branch(refs/notes/origin/commits). I was able to delete the branch(refs/notes/origin/commits) in the remote repository using the command

git push origin :refs/notes/origin/commits

but when i try to delete the same branch on my local repository, i get the below error

[User@centos Clone]# git branch -rd refs/notes/origin/commits
error: remote branch 'refs/notes/origin/commits' not found.

Any suggestions?

3

There are 3 answers

5
akluth On BEST ANSWER

Just do

git branch -d commits

to delete the local branch.

Use the -D switch to delete it irrespective of its merged status.

Use

git update-ref -d refs/notes/origin/commits

to delete the ref.

You can also hard-delete it as mentioned in other answers with

rm -rf .git/refs/notes
0
Ajeesh On

you can just delete the file out of the .git directory. From the repository root, a command like this will get it:

rm .git/refs/tags/refs/original/refs/heads/master

The path may be slightly different if the git-tag command failed, so you may want to cd .git/refs and find the offending head by trial-and-error. Deleting the file will remove the reference from your local repository.

2
silvio On

You have notes in your git repository, you can delete one note with

git notes remove <commit>

or you can use the git update-ref command.

git update-ref -d refs/notes/commits

You can also use the rm command to accomplish this goal, but you should not use it. Git is a very complex tool that stores management data and knows best how to manage it, only if you use this tool suite you can be sure not to end up in an inconsistent state.

For deleting of all notes, you have to remove the 'notes' directory

rm -rf .git/refs/notes