48

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?

silvio
  • 2,174
  • 20
  • 36
Iowa
  • 2,171
  • 4
  • 22
  • 31

3 Answers3

107

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
akluth
  • 8,393
  • 5
  • 38
  • 42
  • 4
    This was also helpful to fix an error message `error: cannot lock ref 'refs/remotes/origin/feature-x': is at [Guid1] but expected [Guid2]` – Jason L. Jul 31 '18 at 16:41
  • This was perfect for removing an improperly tagged commit I made locally. These are in `refs/tags/`. – Jason R Stevens CFA Jan 08 '22 at 20:55
  • Out of your suggestions, `git update-ref -d refs/notes/origin/commits` is what I was looking for. – stanm Apr 15 '22 at 16:35
  • The hard-delete did not work for me but the `git update-ref -d` did. Thanks :) – Alex White Oct 25 '22 at 16:09
  • For me, I had to delete a bad remote branch ref locally (`git branch -r` branches). My prefix on the branch was a bit different. Had to run `git update-ref -d refs/remotes/` where in my case `` was `origin/feature/page-visit` – Llama D'Attore May 21 '23 at 23:02
6

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

git notes remove <commit>

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

rm -rf .git/refs/notes

or you can use the git update-ref command.

git update-ref -d refs/notes/commits
silvio
  • 2,174
  • 20
  • 36
  • 1
    What would be the upside of using `rm -rf ` over `update-ref`? Do you sometimes need to use `rm -rf` because you can’t use the latter command? – Guildenstern May 03 '23 at 12:47
1

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.

Ajeesh
  • 277
  • 2
  • 8