tags:

views:

51

answers:

1

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

master
origin/HEAD
origin/master

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

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

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

+2  A: 

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 B.

Try

git branch -r -d origin/devel

or

git remote prune origin
Jakub Narębski
`git branch -r -d origin/devel` worked for me. thanks. now that i read manpage of `git remote prune`, I guess that should work too. Will try it next time.
Jayesh