2012-03-25 6 views
2

Ich klonen meine Quelle mit git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git w/. Dann spezifiziere ich einen bestimmten Zweig/Tag, indem ich git checkout <tag name> oder git checkout origin/REL<release number> tue. Manchmal vergesse ich, auf welchem ​​Zweig oder welchem ​​Tag ich stehe.Wie kann ich bestimmen, welche Branche/Tag ich in git ausgecheckt habe?

In SVN würde ich eine svn info tun, um herauszufinden, welche Zweig/Tag Ich verwende (merke ich, dass git unterschiedliche Definitionen für branch und tag aber für meine Zwecke das gleiche sie hat).

Wie kann ich bestimmen, auf welchem ​​Zweig/Tag ich bin?

Antwort

5
git branch 

sagt Ihnen, was Zweig du bist auf (mit einem * Marker).

Tags sind nur Namen für Revisionen, Git sagt Ihnen also nicht, dass Sie auf einem Tag sind, aber Sie können git name-rev HEAD verwenden, um ein Gefühl dafür zu bekommen, was es sein könnte.

+0

'git branch' gibt mir nur:' * (kein Zweig) master'. Aber 'git name-rev HEAD' macht genau das, was ich will. – Avery

+0

Sie erhalten '(keine Verzweigung)' weil Sie nicht mehr "auf einer Verzweigung" sind. Du hast, was git einen "abgetrennten HEAD" nennt (was, wie jemand bemerkte, eher grafisch ist, wenn du darüber nachdenkst :-)). Wie auch immer, es ist wichtig, im Hinterkopf zu behalten, dass "in einem Zweig" zu sein, erfordert, dass Sie am * Tipp * der Branche sind. Sonst bist du "losgelöst". Wenn Sie neue Commits hinzufügen, wenn Sie "losgelöst" sind, erstellen Sie eine neue unbenannte Verzweigung. – torek

2

Der aktuelle Zweig ist mit einem * in der Ausgabe git branch gekennzeichnet. Beispiel:

$ git branch 
    branch1 
* branch2 
    master 
0

Wenn Sie die Bash-Shell verwenden, can use __git_ps1 in your bash prompt Sie dies zu zeigen, zum Beispiel:

[[email protected]:~/code/myproject] (master)$ ls 

Herunterladen git-completion.bash-~/.git-completion.bash

Dann in Ihrer ~/.bashrc Datei, fügen

source ~/.git-completion.bash 

Dann setze deinen PS1 Wert auf etwas einschließlich $(__git_ps1 "(%s)"), somethi ng like:

PS1="[\[email protected]\h:\w]\$(__git_ps1)\\$ " 
+0

über die Kommentare in 'git-completion.bash' Ich glaube, dass die Funktion in ein dediziertes Skript https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh extrahiert wurde –