19 Stimmen

Gibt es in Git eine Möglichkeit, den "freundlichen" Namen für eine beliebige Übergabe zu erhalten?

In Git gibt es zahlreiche Möglichkeiten, auf einen Commit zu verweisen, einschließlich des vollständigen SHA-Hashes oder einer verkürzten Form des Hashes (z.B. die ersten 6 Zeichen oder so). Sie können Commits auch mit einer "freundlichen" Syntax benennen, wie HEAD, HEAD^, HEAD^^, HEAD~3, usw.

Gibt es in Git ein Werkzeug, um einen "freundlichen" Namen für einen beliebigen Commit in Form eines SHA-Hashes zu finden?

Wenn ich die git-show-branch Ich erhalte eine Liste der Überarbeitungen in "freundlicher" Form, also denke ich, dass es einen Weg geben muss... ich kann nur kein Werkzeug dafür finden.

19voto

araqnid Punkte 116680

Sie können "git name-rev" verwenden, um die Form zu erhalten, nach der Sie fragen. Ein Problem bei dieser Form ist, dass es sich nicht um einen permanenten Namen handelt, da er sich auf einen Zweig bezieht. Eine Alternative ist daher "git describe", das einen alternativen, freundlichen Namen erzeugt, der darauf basiert, wie weit ein bestimmter Commit einem Tag voraus ist.

Zum Beispiel:

srh@devo16:~/src/git <master>$ git name-rev 3cd7388
3cd7388 master~2

Aber wenn ich dann einen "git pull" mache, könnte master~2 etwas anderes bedeuten. Im Gegensatz dazu:

srh@devo16:~/src/git <master>$ git describe 3cd7388
v1.6.3.1-153-g3cd7388

Jetzt ist "v1.6.3.1-153-g3cd7388" ein dauerhafter Name. Natürlich ist er immer noch ein bisschen lang (obwohl man das Hash-Bit am Ende kürzen kann, indem man z.B. "--abbrev=4" angibt), aber er kommuniziert, dass 3cd7388 153 Änderungen nach Version 1.6.3.1 ist.

4voto

Joe Beda Punkte 2613

Versuchen Sie git describe :

$ git describe --all --contains 90de2680dc54c0d600b0694bd175bd09357a8dba
master~2

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X