23

When I list my branches with git branch -a, git shows me remote branches I can't actually find on my remote(gitlab). I tried to checkout and track those branches, and to my big surprise, git did it. But when I do for example git push origin :branch_name, git says that the remote ref does not exist, thus proving that I do not have those branches in my remote. Hence I have a question, are those branches stored in some kind a local cache? And if yes, how to clear it?

5 Answers 5

52

Use git fetch -p to prune your local caches

Sign up to request clarification or add additional context in comments.

Comments

7

Like mentioned on cleaning up old remote git branches, you should use git remote prune origin.

I didn't use the other two commands mentioned there.

Comments

4

I had a weird issue on macOS where I would get phantom Uppercase versions of branches, e.g. my remote branch listing would show Ben/some-branch locally, but the server would show ben/some-branch.

git remote prune origin would (correctly) remove them, but git fetch --prune would (incorrectly) bring them right back. Very weird.

Best I can tell, at some point in the past, I had a Ben/something branch, but because the default macOS filesystem is case-insensitive, the .git metadata was hanging onto a (capitalized) .git/refs/remotes/origin/Ben folder and using it for the (lowercase) remote branch refs.

rm -rf .git/refs/remotes/origin/Ben && git fetch put me back in order.

1 Comment

Thank you! this is the only answer that helped me with my phantom Uppercase version of branch. It was super annoying.
0

You can clear the deleted branch data from your Git repository using the git gc command.

git gc 

By default, git gc will clean up any unreachable objects and perform other optimizations. If you want to run a more aggressive garbage collection operation, you can use the --aggressive option:

git gc --aggressive 

Comments

0

Those are the commands you need!

git gc --aggressive git fetch -p git rm -r --cached . 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.