2016-05-20 8 views

Antwort

4

Der Pfeil zeigt auf den aktuellen Zweig

Ein Pfeil rechts von HEAD, in der Ausgabe von git log --oneline --decorate --graph, zeigt an, welcher Zweig (falls vorhanden) die aktuelle ist.

* 44025ed (HEAD -> master) second commit 

bedeutet, dass die symbolische Referenz HEAD weist gegenwärtig den master Zweig; mit anderen Worten, Sie sind nicht im Zustand losgelöste HEAD, und der aktuelle Zweig ist master.

enter image description here

Demgegenüber

* 44025ed (HEAD, master) second commit 

bedeutet, dass die symbolische Referenz HEAD tut nicht derzeit in jedem Verzweigungspunkt, sondern zu einer commit (44025ed) direkt; Mit anderen Worten, Sie befinden sich im Status "losgelöst-HEAD". Der Zweig master wird nur neben HEAD aufgeführt, da er auf denselben Commit verweist (44025ed).

enter image description here

Einige Geschichte

Informationen wurde diese Unterscheidung kurz in Git (2.4) eingeführt, nachdem Can git log --decorate unambiguously tell me whether the HEAD is detached? auf Stack-Überlauf gefragt wurde.

Ein kleines Experiment (Ideen fix)

$ mkdir decorate-test 
$ cd decorate-test/ 
$ git init 
Initialized empty Git repository in /xxxxxxx/decorate-test/.git/ 
$ touch README 
$ git add README 
$ git commit -m "Add README" 
[master (root-commit) 50781c9] Add README 
1 file changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 README 
$ git log --oneline --decorate --graph 
* 50781c9 (HEAD -> master) Add README 
# Note the presence of the arrow in the output. 

# Now, check out the commit directly to detach the HEAD: 
$ git checkout 50781c9 
Note: checking out '50781c9'. 

You are in 'detached HEAD' state. You can look around, ... 

HEAD is now at 50781c9... Add README 
$ git log --oneline --decorate --graph 
* 50781c9 (HEAD, master) Add README 
# The arrow is gone! 

# Check out master again to reattach the HEAD: 
$ git checkout master 
Switched to branch 'master' 
$ git log --oneline --decorate --graph 
* 50781c9 (HEAD -> master) Add README 
# The arrow is back! 
+1

Große Erklärung! So sind wir gekommen, wenn wir in "distanziert-KOPF" sind. Wenn ich mich nicht irre, sah ich '(HEAD, Master)' auch im Normalzustand, während 'HEAD' auf' Master' (nicht 'detached-HEAD') zeigt. Ist es möglich? PS: ein großes _wow_ für die historische Motivation! :) – floatingpurr

+1

Wenn Sie '(HEAD, Master)' sehen, '' HEAD' zeigt * not * auf 'Master'; vielmehr zeigen "HEAD" und "Master" auf denselben Commit. Ich werde meiner Antwort später noch Fotos hinzufügen, um es zu verdeutlichen. – Jubobs

Verwandte Themen