当我用git branch -a
列出我的分支时,git向我展示了我在远程(gitlab)上实际找不到的远程分支。我试图检查并跟踪那些分支,令我惊讶的是,git做到了。但是当我做例如git push origin :branch_name
时,git说远程引用不存在,从而证明我的遥控器中没有这些分支。因此我有一个问题,那些分支存储在某种本地缓存中?如果是的话,如何清除它?
答案 0 :(得分:10)
使用git fetch -p
修剪本地缓存
答案 1 :(得分:3)
答案 2 :(得分:0)
我在macOS上遇到了一个奇怪的问题,在那里我会得到幻像的分支的大写版本,例如我的远程分支列表将在本地显示Ben/some-branch
,但是服务器将显示ben/some-branch
。
git remote prune origin
将(正确)删除它们,但是git fetch --prune
将(不正确)将它们带回来。很奇怪。
据我所知,在过去的某个时候,我有一个Ben/something
分支,但是由于默认的macOS文件系统不区分大小写,因此.git
元数据挂在(大写的).git/refs/remotes/origin/Ben
文件夹上,并将其用于(小写的)远程分支引用。
rm -rf .git/refs/remotes/origin/Ben && git fetch
使我恢复秩序。