如何清除git缓存?

时间:2015-08-10 13:58:13

标签: git gitlab

当我用git branch -a列出我的分支时,git向我展示了我在远程(gitlab)上实际找不到的远程分支。我试图检查并跟踪那些分支,令我惊讶的是,git做到了。但是当我做例如git push origin :branch_name时,git说远程引用不存在,从而证明我的遥控器中没有这些分支。因此我有一个问题,那些分支存储在某种本地缓存中?如果是的话,如何清除它?

3 个答案:

答案 0 :(得分:10)

使用git fetch -p修剪本地缓存

答案 1 :(得分:3)

与提到的here一样,您可以使用:

git remote prune origin

我没有使用那里提到的其他两个命令。

答案 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使我恢复秩序。