Jayesh Jayesh - 11 months ago 59
Git Question

cleaning up old remote git branches

Here is my git workflow.

I work from two different computers (A and B) and store a common git remote in dropbox directory.

Let's say I have two branches master and devel. Both are tracking their remote counterparts origin/master and origin/devel.

Now while on computer A, I delete branch devel - both local and remote - as follows:

git push origin :heads/devel

git branch -d devel

Now if I do
git branch -a
on computer A, I get


I now go to computer B. Do
git fetch
. I can remove the local devel branch by

git branch -d devel

But I can't remove the remote devel branch.

git push origin :heads/devel

error: unable to push to unqualified destination: heads/proxy3d
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
fatal: The remote end hung up unexpectedly

git branch -a
still lists origin/devel in remote branches.

How can I clean up the remote entry of devel from machine B?

Answer Source

First, what is the result of git branch -a on machine B?

Second, you have already deleted heads/devel on origin, so that's why you can't delete it from machine B.


git branch -r -d origin/devel


git remote prune origin


git fetch origin --prune

and feel free to add --dry-run to the end of your git statement to see the result of running it without actually running it.