I clone my source using git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git w/
. Then I specify a specific branch/tag by doing git checkout <tag name>
or git checkout origin/REL<release number>
. Sometimes I forget what branch or tag I'm on.
In SVN I would do a svn info
to figure out what branch/tag I'm using (I realize that git has distinct definitions for branch
and tag
but for my purposes they are the same).
How do I determine what branch/tag I am on?
git branch
tells you what branch you're on (with a *
marker).
Tags are just names for revisions, so Git won't tell you that you're "on" a tag, but you can use git name-rev HEAD
to get a sense for what it might be.
The current branch is marked with a *
in the output of git branch
. Example:
$ git branch
branch1
* branch2
master
If you use the bash shell, you can use __git_ps1
in your bash prompt to show this, for example:
[me@myhost:~/code/myproject] (master)$ ls
Download git-completion.bash
to ~/.git-completion.bash
Then in your ~/.bashrc
file, add
source ~/.git-completion.bash
Then set your PS1
value to something including $(__git_ps1 "(%s)")
, something like:
PS1="[\u@\h:\w]\$(__git_ps1)\\$ "
How do I determine what branch/tag I am on?
First, since Git 2.22 (Q2 2019), you have git branch --show-current
which directly shows you your current checked out branch.
Second, it won't show anything if you are in a checked out worktree (created with git worktree add
)
For that, check Git 2.23 (Q3 2019), with its "git branch --list
" which learned to show branches that are checked out in other worktrees connected to the same repository prefixed with '+
', similar to the way the currently checked out branch is shown
with '*
' in front.
Example:
See commit 6e93814, commit ab31381, commit 2582083 (29 Apr 2019) by Nickolai Belakovski (``).
(Merged by Junio C Hamano -- gitster
-- in commit 99eea64, 09 Jul 2019)
branch
: add worktree
info on verbose output
To display worktree path for refs checked out in a linked worktree
The git branch
documentation now states:
The current branch will be highlighted in green and marked with an asterisk.
Any branches checked out in linked worktrees will be highlighted in cyan and marked with a plus sign.