2017-02-08 3 views
0

Ich habe einen Hauptzweig, der mit Anmerkungen versehen ist - nicht leichtgewichtige Anhänge. Der Arbeitsbereich befindet sich in einem frei stehenden Kopf Zustand, also nach über Jenkins Multibranch PipelineWie benutzt man git beschreiben auf einem losgelösten Kopf commit?

ausgecheckt Als ich git describe betreibe ich den Namen eines wirklich alten Tag bin immer zusammen mit einer sehr hohen Anzahl von Commits seit diesem Tag, (zB 1.0.0-459-abc1234)

Wenn ich rufe git tag bekomme ich eine Liste aller Tags, einschließlich der neuesten, die mich interessieren, z 3.1.0, 3.2.0.

Ich dachte dann darüber nach, etwas wie git branch -r --contains HEAD zu tun, um den Namen des entfernten Zweiges zu bekommen, dann holen und überprüfen Sie das (Laufen das Risiko, dass ich tatsächlich eine spätere Commit auschecken als die, die die Pipeline ausgelöst hat, aber was auch immer, es ist isoliert auf eine Pull-Anfrage sowieso ...) Oder einfach git describe <remote_branch_name> ausführen Aber das hat nicht funktioniert. Ich verstehe nicht, warum Git lieber das sehr alte als das aktuellere Tag zeigen würde, da jede Pull-Anfrage vom Zweig master abgezweigt wird (jedes Commit, das getaggt wurde, ist garantiert auf der master zu finden) Ast).

+0

Wenn Sie Ihrem aktuellen HEAD-Commit folgen (dh seinem Eltern-, Eltern-Elternteil usw.), finden Sie einen Commit mit einem Tag 3.x.0? – VonC

Antwort

0

Der Grund für das Problem könnte tatsächlich eine andere Git-Version gewesen sein. Ein Host hatte eine ziemlich alte Git-Version installiert (1.7.x), nachdem er auf 2.10.x überall aktualisiert hatte, das Problem ging weg. Ein anderer möglicher Grund könnte sein, dass wir die Tags manchmal aktualisieren und auf ein neues Commit verweisen (wir haben damit aufgehört). Mir ist einmal aufgefallen, dass wenn Sie ein Lightweight-Tag erstellen und es dann in ein annotiertes Tag ändern Der Client, der das Lightweight-Tag bereits gesehen hat, lädt das aktualisierte, jetzt kommentierte Tag nicht herunter, wenn Sie git fetch --tags tun, weil es erkennt, dass es das Tag bereits beim Namen gesehen hat, und es nicht stört, dass sich der Typ des Tags geändert hat git describe wird dieses Tag für diesen Client nicht übernehmen.

Verwandte Themen