2017-08-04 1 views
8

Also, etwas komisches, dass ich noch nie zuvor begegnet war.Git Checkout von Commit # bringt mich zu einem anderen Commit #

$ git checkout fb4b6581d36a522e092491d1dc5f49cb96ab7a3e 
Note: checking out 'fb4b6581d36a522e092491d1dc5f49cb96ab7a3e'. 

You are in 'detached HEAD' state. You can look around, make experimental 
changes and commit them, and you can discard any commits you make in this 
state without impacting any branches by performing another checkout. 

If you want to create a new branch to retain commits you create, you may 
do so (now or later) by using -b with the checkout command again. Example: 

    git checkout -b <new-branch-name> 

HEAD is now at 8a74070... 

Grundsätzlich ist meine Frage, wenn ich fb4b6581 ausgecheckt habe, warum ist HEAD jetzt bei 8a74070? Mein grundlegendes Git-Wissen ist nicht genug um zu verstehen, was vor sich geht. Lassen Sie mich wissen, wenn ich weitere Informationen zu dieser Frage hinzufügen sollte, dies ist der Kern des Problems, das ich sehe.

Beachten Sie auch, dass wenn ich git Log tun, ich fb4b6581 nirgendwo sehe, aber ich sehe 8a74070, was zu meiner Verwirrung beiträgt.

Danke

Antwort

6

Das bedeutet, dass das Git-Objekt mit ID fb4b6581d36a522e092491d1dc5f49cb96ab7a3e ein Objekt Tag ist (ein kommentierte-Tag).

Sie können es mit sehen:

$ git cat-file -t fb4b6581d36a522e092491d1dc5f49cb96ab7a3e 

, die die Art des Objekts gedruckt werden, und:

$ git cat-file -p fb4b6581d36a522e092491d1dc5f49cb96ab7a3e 

, die die rohen Tag Inhalte direkt gedruckt werden. Der Befehl git show zeigt zuerst den Inhalt des Tags und dann das Commit an, auf das das Tag zeigt, nämlich dieses andere Objekt 8a74070....

+0

Ich hatte 'git show-ref #' verwendet, um festzustellen, auf welches Commit # ein bestimmtes Tag hinwies. Das ist, das funktioniert immer gut für alle Tags, außer diesem. Angenommen, ich habe #s A, B und C, und ich habe Tags tA -> A, tB -> B und tC -> C. Wenn ich 'git show-ref A' mache, bekomme ich das Commit # für A. Same für B. Aber in diesem Fall zeigt C, 'git show-ref C' nicht Cs commit #. Weißt du zufällig, warum es in diesem Fall anders wäre? –

+0

Ah! Warte, bleib dran, ich verstehe, was du sagst. Ich verwechsle ein Tag mit einem kommentierten Tag. Ich danke dir sehr! Viel klarer. –