Gibt es eine Möglichkeit, den vorherigen Git-Branch-Namen auszugeben?

Lesezeit: 2 Minuten

Benutzeravatar von Henry Blyth
Heinrich Blyth

Diese Antwort erklärt, wie man zur vorherigen Verzweigung auscheckt, und erklärt es hilfreich @{-1}: https://stackoverflow.com/a/7207542/3150057

Der vorherige Zweig ist wichtig, wenn ich vor dem Ändern des Zweigs Code gestackt habe und jetzt darüber nachdenke, am Stash zu arbeiten.

Gibt es eine Möglichkeit, den Namen des vorherigen Zweigs schnell anzuzeigen, ohne zu suchen git reflog show für das Neueste checkout: moving from foo to bar Eintrag?


Mehr Info:

Dies ist eine Lösung für meine Vergesslichkeit meines vorherigen Arbeitskontexts, die normalerweise nach der Rückkehr vom Mittagessen auftritt.

git rev-parse @{-1} zeigt den HEAD-Commit des Branches, der ausgecheckt werden würde git checkout - aber nicht der Filialname.

git branch --contains @{-1} listet jeden Zweig mit diesem Commit auf.

Es wäre hilfreich, die Branche(s) mit diesem Commit als HEAD aufzulisten, da dies helfen könnte, mich an meinen vorherigen Arbeitskontext zu erinnern, aber ich bin mir nicht sicher, wie ich das machen soll.

Benutzeravatar von Gabriel Furstenheim
Gabriel Fürstenheim

Wenn Sie nur den Namen möchten, können Sie Folgendes verwenden:

git name-rev $(git rev-parse @{-1}) --name-only

Also zum Beispiel:

$ git checkout mybranch
$ git checkout master
$ git name-rev $(git rev-parse @{-1}) --name-only
> mybranch

Sie ist der akzeptierten Antwort vorzuziehen, da sie im Namen keine „Köpfe“ enthält, sodass sie mit anderen Git-Befehlen verkettet werden kann.

  • Hübsch! git name-rev @{-1} --name-only funktioniert auch

    – Byohay

    13. Januar 2021 um 9:25 Uhr

Vielleicht ist es das, was Sie wollen:

git describe --all $(git rev-parse @{-1})

Von dem git-describe Manpage:

--all

Anstatt nur die annotierten Tags zu verwenden, verwenden Sie eine beliebige Referenz, die in refs/namespace gefunden wird. Diese Option ermöglicht den Abgleich mit jedem bekannten Branch, Remote-Tracking-Branch oder Lightweight-Tag.

Also zum Beispiel, wenn ich das mache:

$ git checkout mybranch
$ git checkout master
$ git describe --all $(git rev-parse @{-1})

Ich verstehe:

heads/mybranch

  • Das reicht, danke! konnte ich verwenden git describe --all @{-1} und kam zum gleichen Ergebnis.

    – Henry Blyth

    4. November 2016 um 15:18 Uhr

  • Bekommen fatal: Not a valid object name @{-1} 🙁

    – Hlung

    1. Dezember 2017 um 6:10 Uhr

  • @{-1} bezieht sich auf “den ten Branch/Commit, der vor dem aktuellen ausgecheckt wurde”. Wenn Sie bisher nur einen einzigen Zweig verwendet haben (z. master), dann gibt es keinen “vorherigen Zweig” und Sie erhalten den von Ihnen beschriebenen Fehler. Versuchen git checkout -b testbranch und dann sehen, was @{-1} verweist.

    – Lerchen

    1. Dezember 2017 um 13:06 Uhr

1447650cookie-checkGibt es eine Möglichkeit, den vorherigen Git-Branch-Namen auszugeben?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy