Ich versuche, einige Informationen über einige Git-Commits über die Befehlszeile als Teil eines größeren automatisierten Tools, das ich erstelle, zu erhalten. Die Informationen, die ich ist über diesen git log Befehl verfügbar sein soll:Ausgabe von git log geht verloren, wenn piped zu Datei - was fehlt mir?
git log --branches --graph --oneline --parents
die diese Ausgabe erzeugt:
Das ist großartig, denn dies hat die Hashes und Tags, die ich will, als auch als die Commit-Nachrichten. Wenn ich das jedoch in eine Datei pipe, scheint das Zeug in den Klammern irgendwie verloren gehen. Ich interessiere mich nicht sehr für die Farbe, aber ich will nur den einfachen Text, wie ich es von jedem * nix-ähnlichen Programm erwarten würde.
Dies ist die Ausgabe scheine ich stattdessen zu bekommen, das einen Teil der Ausgabe auslässt Ich möchte (zB die Tag-Informationen):
Ich bin nicht sicher, wie oder warum diese Informationen bekommen verloren, wenn irgendwo gepipst wird. Ich denke, das könnte etwas unglaublich Einfaches und Offensichtliches sein.
Ich erlebe das gleiche Problem, ob ich dies in Bash auf Arch Linux (mit der neuesten Version von Git) oder in der MINGW64 Bash-Umgebung in Windows.
Frage: Wie kann ich die Ausgabe von git log vollständig erfassen, ohne die Informationen zu verlieren, die verloren gehen, wenn eine Datei gepuffert wird?
Umleitung Stderr auch: '2> & 1' –
Warum ist die oben genannten upvoted, wenn es tatsächlich keine Lösung für das Problem ist, wie selbst die minimalste Test gezeigt und durch die Dokumentation bestätigt? –
'git' kann sich anders verhalten, wenn es feststellt, dass seine Standardausgabe kein Terminal ist. Es läuft aber auch etwas anderes, weil Sie diese Ausgabe nicht ohne die Option "--decorate" in Ihrem Befehl erhalten sollten. – chepner