[tor-dev] Moving ownership to TheTorProject

Andreas Krey a.krey at gmx.de
Tue Apr 1 19:15:11 UTC 2014

On Tue, 01 Apr 2014 12:02:23 +0000, Zack Weinberg wrote:
> That's not the issue; the issue is that I am unaware of any good way to
> tell git to pull or push *all* branches that exist in a particular
> remote.  Your example
> > [remote "origin"]
> >         url = git at github.com:zackw/stegotorus.git
> >         fetch = +refs/heads/*:refs/remotes/origin/*
> >         pushurl = zackw at gitweb.torproject.org/stegotorus.git
> would IIUC pull/push only those branches that *already exist* locally.

No, a 'git fetch --prune' will fetch all (local[1]) branches on the remote
repo and store them as remotes/origin/*. You can see those branches with
'git branch -a'. The --prune makes a local remotes/origin/* branch
disappear when the respective branch in the remote vanished.

> In fact, I don't even know how to get it to *list* all the branches that
> exist in a remote, whether or not they are tracked in the local copy;

There are two kind of 'tracking'. One are the 'tracking branches,
i.e. the remotes/origin/* branches that mirror ('track') the state
of the remote repo. The other is the branch-specific setting for
local branches that link a local branch to a specific branch on
the remote.

> when I've had to do this (once before, and never again until I learn a
> better way) I wound up manually copying and pasting from the branch list
> on gitweb for the remote in question.

If you actually want to push all local branches to a remote:

  git push remotename 'refs/heads/*:refs/heads/*'

For that, none of those branches should be the current branch in the
remote repository. Apply --force or --prune with care and understanding.


[1] 'local branches': Those that aren't remote tracking branches,
    but show up in 'git branch' without '-a'.

"Totally trivial. Famous last words."
From: Linus Torvalds <torvalds@*.org>
Date: Fri, 22 Jan 2010 07:29:21 -0800

More information about the tor-dev mailing list