# git branch -a prefixes origin/ branches with remotes/

7 messages from 2010-03-31 to 2010-04-01. Participants: layer, Jakub Narebski, Jay Soffian, Jeff King, Andreas Schwab, Michael J Gruber.
Thread: https://gitlist.dev/t/23273

## layer, 2010-03-31 17:26

Subject: git branch -a prefixes origin/ branches with remotes/
Message-ID: <18137.1270056387@relay.known.net>
URL: https://gitlist.dev/e/18137.1270056387%40relay.known.net

```
In git 1.6.6.1 & 1.6.3.3, "git branch -a" output is like this

* master
  remotes/origin/foo
  ...

instead of like this for 1.6.1.3

* master
  origin/foo
  ...


Is this a feature or bug?  I searched the mailing list archives and
announcements couldn't find any reference to this change.

This is important to me because I use the output of "git branch -a" in
scripts.

Thanks.

Kevin

```

## Jakub Narebski, 2010-03-31 17:52

Subject: Re: git branch -a prefixes origin/ branches with remotes/
Message-ID: <m3aatoidl9.fsf@localhost.localdomain>
URL: https://gitlist.dev/e/m3aatoidl9.fsf%40localhost.localdomain
In-Reply-To: <18137.1270056387@relay.known.net>

```
layer <layer@known.net> writes:

> In git 1.6.6.1 & 1.6.3.3, "git branch -a" output is like this
> 
> * master
>   remotes/origin/foo
>   ...
> 
> instead of like this for 1.6.1.3
> 
> * master
>   origin/foo
>   ...
> 
> 
> Is this a feature or bug?  I searched the mailing list archives and
> announcements couldn't find any reference to this change.
> 
> This is important to me because I use the output of "git branch -a" in
> scripts.

Don't use git-branch output in scripts; git-branch is porcelain and
its output is meant for end user and is subject to change!  Use either
git-show-ref, or powerfull git-for-each-ref.

-- 
Jakub Narebski
Poland
ShadeHawk on #git

```

## Jay Soffian, 2010-03-31 21:59

Subject: Re: git branch -a prefixes origin/ branches with remotes/
Message-ID: <k2r76718491003311459u4bbaeb4ax5b2e550acdd14c88@mail.gmail.com>
URL: https://gitlist.dev/e/k2r76718491003311459u4bbaeb4ax5b2e550acdd14c88%40mail.gmail.com
In-Reply-To: <18137.1270056387@relay.known.net>

```
On Wed, Mar 31, 2010 at 1:26 PM, layer <layer@known.net> wrote:
> In git 1.6.6.1 & 1.6.3.3, "git branch -a" output is like this
>
> * master
>  remotes/origin/foo
>  ...
>
> instead of like this for 1.6.1.3
>
> * master
>  origin/foo
>  ...
>
> Is this a feature or bug?  I searched the mailing list archives and
> announcements couldn't find any reference to this change.

Feature. Introduced in 1.6.3:

http://article.gmane.org/gmane.comp.version-control.git/116404

See "builtin-branch: improve output when displaying remote branches"

> This is important to me because I use the output of "git branch -a" in
> scripts.
>
> I should add that the scripts are merely testing for the existence of
> remote tracking branches in the local repo.  If there's a better way
> to do this, I'm game.  Thanks.

git branch is a so-called porcelain command, and as you've now been
bitten by, the output of porcelain's is subject to change.

You probably want git for-each-ref.

Aside, the only list of plumbing vs porcelain commands I'm aware of is
in the bash-completion script under contrib. See
__git_list_porcelain_commands here:

http://git.kernel.org/?p=git/git.git;a=blob;f=contrib/completion/git-completion.bash

Those are generally commands whose output you do not want to be
parsing. All the other git commands installed under git-core are
mostly plumbing upon which you can build additional functionality.

(Note to git list: there should be a man page that has a single-line
summary of each command and states whether the command is plumbing or
porcelain. Maybe there is and I just don't know it.)

j.

```

## Jeff King, 2010-03-31 22:03

Subject: Re: git branch -a prefixes origin/ branches with remotes/
Message-ID: <20100331220340.GA4564@coredump.intra.peff.net>
URL: https://gitlist.dev/e/20100331220340.GA4564%40coredump.intra.peff.net
In-Reply-To: <k2r76718491003311459u4bbaeb4ax5b2e550acdd14c88@mail.gmail.com>

```
On Wed, Mar 31, 2010 at 05:59:49PM -0400, Jay Soffian wrote:

> Aside, the only list of plumbing vs porcelain commands I'm aware of is
> in the bash-completion script under contrib. See
> __git_list_porcelain_commands here:
> 
> http://git.kernel.org/?p=git/git.git;a=blob;f=contrib/completion/git-completion.bash

Try command-list.txt, which is meant to be authoritative.

> (Note to git list: there should be a man page that has a single-line
> summary of each command and states whether the command is plumbing or
> porcelain. Maybe there is and I just don't know it.)

Try "man git", which splits the command list by porcelain and plumbing
(and further by subcategory).

-Peff

```

## Andreas Schwab, 2010-03-31 22:04

Subject: Re: git branch -a prefixes origin/ branches with remotes/
Message-ID: <m2iq8c2ln9.fsf@igel.home>
URL: https://gitlist.dev/e/m2iq8c2ln9.fsf%40igel.home
In-Reply-To: <k2r76718491003311459u4bbaeb4ax5b2e550acdd14c88@mail.gmail.com>

```
Jay Soffian <jaysoffian@gmail.com> writes:

> (Note to git list: there should be a man page that has a single-line
> summary of each command and states whether the command is plumbing or
> porcelain. Maybe there is and I just don't know it.)

git(1)

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

```

## Jay Soffian, 2010-03-31 22:09

Subject: Re: git branch -a prefixes origin/ branches with remotes/
Message-ID: <q2y76718491003311509z9c2f83c2t4a217f7c68b4ff4f@mail.gmail.com>
URL: https://gitlist.dev/e/q2y76718491003311509z9c2f83c2t4a217f7c68b4ff4f%40mail.gmail.com
In-Reply-To: <m2iq8c2ln9.fsf@igel.home>

```
On Wed, Mar 31, 2010 at 6:04 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> Jay Soffian <jaysoffian@gmail.com> writes:
>
>> (Note to git list: there should be a man page that has a single-line
>> summary of each command and states whether the command is plumbing or
>> porcelain. Maybe there is and I just don't know it.)
>
> git(1)

Yes, I'm an idiot. Anyone else wanna pile on? :-)

j.

```

## Michael J Gruber, 2010-04-01 09:17

Subject: Re: git branch -a prefixes origin/ branches with remotes/
Message-ID: <4BB464B4.1080109@drmicha.warpmail.net>
URL: https://gitlist.dev/e/4BB464B4.1080109%40drmicha.warpmail.net
In-Reply-To: <q2y76718491003311509z9c2f83c2t4a217f7c68b4ff4f@mail.gmail.com>

```
Jay Soffian venit, vidit, dixit 01.04.2010 00:09:
> On Wed, Mar 31, 2010 at 6:04 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>> Jay Soffian <jaysoffian@gmail.com> writes:
>>
>>> (Note to git list: there should be a man page that has a single-line
>>> summary of each command and states whether the command is plumbing or
>>> porcelain. Maybe there is and I just don't know it.)
>>
>> git(1)
> 
> Yes, I'm an idiot. Anyone else wanna pile on? :-)

Just blame it on April fool's day, you fooled everyone who took your
remark seriously ;)

Michael

```
