Git-Protokoll Ref-Metadaten in Datei drucken

Lesezeit: 2 Minuten

Wenn ich laufe git log und im Pager anzeigen, bekomme ich einige nette Ref-Metadaten neben Commits:

commit 212b18778130cdf36effe441890826b76b97a09f (HEAD -> master, tag: TAG_8.0.2, origin/author/bootstrap_gcm, origin/master, origin/HEAD)
Merge: 4d7e0962f 7f687a431
Author: Joe, Smith <joe.smith@company.com>
Date:   Sun Oct 4 18:03:37 2020 -0400

    Merge branch 'jsmith/8.0.0_changes' into 'master'

    See merge request project/project!1286

commit 4d7e0962fadc17ac3af23a85b64ecaf65d68bc42 (tag: TAG_8.0.1)
Merge: e7ccb690f cd10de563
Author: Joe, Smith <joe.smith@company.com>
Date:   Fri Oct 2 19:54:31 2020 -0400

    Merge branch 'project2' into 'master'

    See merge request project/project!1285

Die Ref-Metadaten, über die ich spreche, sind:

(HEAD -> master, tag: TAG_8.0.2, origin/author/feature_br1, origin/master, origin/HEAD)
(tag: TAG_8.0.1)

— Off rechts vom Commit in Klammern.

Allerdings, wenn ich es tue git --no-pager log > git.logall diese Referenzinformationen fehlen:

commit 212b18778130cdf36effe441890826b76b97a09f
Merge: 4d7e0962f 7f687a431
Author: Joe, Smith <joe.smith@company.com>
Date:   Sun Oct 4 18:03:37 2020 -0400

    Merge branch 'jsmith/8.0.0_changes' into 'master'

    See merge request project/project!1286

commit 4d7e0962fadc17ac3af23a85b64ecaf65d68bc42
Merge: e7ccb690f cd10de563
Author: Joe, Smith <joe.smith@company.com>
Date:   Fri Oct 2 19:54:31 2020 -0400

    Merge branch 'project2' into 'master'

    See merge request project/project!1285

Zwei Fragen.

  1. Warum? Sollte der gleiche Text, der an den Pager gesendet wird, nicht auch in eine Datei umgeleitet werden?

  2. Gibt es eine Möglichkeit, die Referenzinformationen in Klammern beim Speichern in eine Datei beizubehalten?

Sollte der gleiche Text, der an den Pager gesendet wird, nicht auch in eine Datei umgeleitet werden?

Nein: die Standardeinstellung für decorate ist decorate=autound Auto bedeutet:

  • ein (eingestellt auf short) beim Aufrufen des Bildschirms (vielleicht über einen Pager), aber
  • aus (eingestellt auf no) beim Aufrufen einer Datei.

Genau deswegen:

git --no-pager log --decorate > git.log

funktioniert: --decorate ist die Abkürzung für die Einstellung der decorate Einstellung zu shortfür die Ausführung dieses einen Befehls.

Beachten Sie, dass mit git configkönnen Sie Ihre persönliche Voreinstellung für die konfigurieren decorate Möglichkeit. Sehen der git config Dokumentation; suchen nach log.decorate.

Ich bin immer noch nicht sicher, was die Antwort auf meine erste Frage ist (warum werden die Ref-Informationen, die im Pager vorhanden sind, nicht in die Datei ausgegeben). Ich habe jedoch eine Problemumgehung gefunden – einschließlich der --decorate Flagge:

git --no-pager log --decorate > git.log

Es ist nicht exakt das gleiche, aber es reicht für meine Zwecke.

997390cookie-checkGit-Protokoll Ref-Metadaten in Datei drucken

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

Privacy policy