Ich habe ein Commit c. Ich möchte den Änderungssatz dieser genauen Commit-C + -Metainformation und keine andere erhalten. Gibt es einen einfacheren Weg als git log -p c^..c
das?
Die Antwort von Michal Trybus ist der Einfachheit halber die beste. Wenn Sie jedoch den Unterschied in Ihrer Ausgabe nicht möchten, können Sie immer Folgendes tun:
git log -1 -U c
Dadurch erhalten Sie das Festschreibungsprotokoll, und dann haben Sie die volle Kontrolle über alle Git-Protokollierungsoptionen für Ihre Automatisierungszwecke. In Ihrem Fall sagten Sie, Sie wollten das Änderungsset. Der am besten lesbare Weg, dies zu erreichen, wäre:
git log --name-status --diff-filter="[A|C|D|M|R|T]" -1 -U c
Wenn Sie eine Git-Version verwenden, die größer als 1.8.X ist, ist dies:
git log --name-status --diff-filter="ACDMRT" -1 -U c
Dadurch erhalten Sie ähnliche Ergebnisse wie:
commit {c}
Author: zedoo <[email protected]>
Date: Thu Aug 2 {time-stamp}
{short description}
D zedoo/foo.py
A zedoo/bar.py
Natürlich können Sie die Ereignisse herausfiltern, die Sie für richtig halten, und die Rückgabe nach Ihren Wünschen über die traditionellen Git-Log-Befehle formatieren, die hier gut dokumentiert sind .
git show --name-only <sha1>
!git show -s <commit>
.-1
das Wo ist es dokumentiert?git help log
im Abschnitt "Commit Limiting". Oder siehe git-scm.com/book/en/v2/…-<number>
begrenzt die Anzahl der auszugebenden Commits.git log -p c -1
macht genau das.quelle
-n 1
oder--max-number=1
und wird hier dokumentiert .Sie können Änderungen nach der Beschreibung des Commits filtern:
wo
git log --grep='part_of_description'
die Commits auswählen , die ‚part_of_description‘ enthält und-p
zeigen die changeset jeder begehenquelle