git:如何删除本地ref分支?

Iow*_*owa 31 git git-notes

删除本地引用分支(refs/notes/origin/commits)有点困难.我能够使用该命令删除远程存储库中的分支(refs/notes/origin/commits)

git push origin :refs/notes/origin/commits
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在我的本地存储库中删除相同的分支时,我得到以下错误

[User@centos Clone]# git branch -rd refs/notes/origin/commits
error: remote branch 'refs/notes/origin/commits' not found.
Run Code Online (Sandbox Code Playgroud)

有什么建议?

ale*_*oze 61

做就是了

git branch -d commits
Run Code Online (Sandbox Code Playgroud)

删除本地分支.

-D无论合并状态如何,都可以使用该开关将其删除.

使用

git update-ref -d refs/notes/origin/commits
Run Code Online (Sandbox Code Playgroud)

删除引用.

您也可以像其他答案中提到的那样对其进行硬删除

rm -rf .git/refs/notes
Run Code Online (Sandbox Code Playgroud)

  • 这也有助于修复错误消息“错误:无法锁定ref'refs / remotes / origin / feature-x':位于[Guid1],但应位于[Guid2]” (2认同)

sil*_*vio 7

您在git存储库中有注释,可以删除一个注释

git notes remove <commit>
Run Code Online (Sandbox Code Playgroud)

要删除所有注释,您必须删除'notes'目录

rm -rf .git/refs/notes
Run Code Online (Sandbox Code Playgroud)

或者您可以使用git update-ref命令.

git update-ref -d refs/notes/commits
Run Code Online (Sandbox Code Playgroud)

  • 使用“rm -rf &lt;dir&gt;”而不是“update-ref”有什么好处?您有时是否需要使用“rm -rf”,因为您无法使用后一个命令? (2认同)