我正在研究OSX Yosemite。我似乎有一个名为Icon
的分支,我当然没有刻意创建:
$ git branch
Icon
* master
但如果我尝试删除它,则找不到分支:
$ git branch -D Icon
error: branch 'Icon' not found.
同样,我无法检查出来:
$ git checkout Icon
error: pathspec 'Icon' did not match any file(s) known to git.
到底是怎么回事?
答案 0 :(得分:2)
这不是分支。图标?文件由适用于OS X的Google云端硬盘同步客户端自动创建,特别是在您使用Git时会很痛苦。当您创建repo(或克隆它)时,OS X会自动放置一个Icon吗?文件在每个目录中,包括.git / branches目录:
$ ls .git/branches/
Icon?
有关详情,请参阅以下相关主题:How to ignore Icon? in git https://productforums.google.com/forum/#!topic/drive/6SIZ7nhNO4w
答案 1 :(得分:0)
检查您的回购是否状况良好:
git fsck --full
这将验证您的存储库的完整性。
.git/refs/heads
如果此命令完成后您仍未发现任何问题(未报告错误),请检查您的本地.git/refs/heads
中存储了哪些分支。
Git每个分支存储分支信息(分支名称文件中的SHA-1)。如果您看到名为Icon
的文件,则只需删除它。
.git/packed-refs
编辑.git/packed-refs
;如果您看到包含您的分支名称(Icon
)的行,则将其删除
git fetch --all --prune
这将下载新的分支数据,并将删除所有已删除的远程信息(分支,标签等)。
git remote prune origin
与上面使用--prune
标志的提取相同。也将从本地删除任何已删除的数据。