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
.
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
).
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!
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
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