Wie kommt man diff
für den angegebenen Benutzer zwischen zwei Daten von git? Oder wie man git verwendet whatchanged
Befehl zum Auflisten von Commits für den angegebenen Benutzer?
Gibt es einen Weg ohne Skripting (eingebauter Git-Befehl)?
Mixer
Wie kommt man diff
für den angegebenen Benutzer zwischen zwei Daten von git? Oder wie man git verwendet whatchanged
Befehl zum Auflisten von Commits für den angegebenen Benutzer?
Gibt es einen Weg ohne Skripting (eingebauter Git-Befehl)?
Ich glaube, es gibt keine Möglichkeit, einen Unterschied zu machen, wenn man nur Daten kennt.
Ab heute können Sie Folgendes tun:
git log --since "OCT 4 2011" --until "OCT 11 2011" --pretty=format:"%H"
Und dann git diff
zwischen erster und letzter Revision. Wenn die Revisionsliste viel zu lang ist, verwenden Sie die obige git log ...
mit | head -1
und | tail -1
um die erste und die letzte Revision zu erhalten.
Beachten Sie, dass das obige Git-Protokoll Revisionen zurückgibt exakt zwischen bestimmten Daten, dh Überarbeitungen für 5. OKT, 6. OKT, …, 10. OKT.
Du kannst Sortieren der macht es direkt mit diff, aber nicht so zuverlässig, mit dem @{date}
Notation, z. git diff @{date1} @{date2}
. Das Problem dabei ist, dass die @{date}
Konstrukt schaut nicht auf den Commit-Verlauf, um das Datum in eine Commit-ID zu übersetzen, sondern verwendet stattdessen die Revlog. Das Ergebnis ist, dass, wenn Sie ziehen wirklich oftwird Ihr Revlog so detailliert sein, dass die oben genannten Informationen möglicherweise das tun, was Sie möchten, aber wenn Sie nichtdie Ergebnisse werden ungenau sein …
– Snogglethorpe
28. Oktober 2011 um 9:01 Uhr
Ich musste Gleichheitszeichen hinzufügen, damit es funktioniert: git log --since="FEB 1 2014" --until="FEB 30 2014"
– knochigiii
16. Mai 2014 um 14:46 Uhr
Dies ist möglich, und zwar mit den Benutzer-/Committer-Kriterien:
git log --after="2015-10-14" --before="2015-10-21" --grep="MB[FT][0-9-]*" --author="John\|Mary"
Das passt zu allem
John
oder Mary
MBT
oder MBF
plus einen Zahlencode, der a enthalten kann -
verkohlen.Dies zeigt das Protokoll an, aber kein Diff.
– pingu
7. Juni 2016 um 10:59 Uhr
git log --since "MAY 1 2017" --until "MAY 31 2017" -p --author="Jack" > diffJackMay.patch