Frage Erhalten Sie alle Git-Commits seit dem letzten Tag


Wenn ich ein Commit * taggen will, muss ich wissen, was sich seit dem letzten Tag-Commit geändert hat. Z.B:

a87a6sdf87a6d4 Some new feature
a87a6sdf87a6d3 Some bug fix
a87a6sdf87a6d2 Some comments added
a87a6sdf87a6d1 Some merge <- v1.4.0

In diesem Beispiel würde ich gerne über die 3 neuesten Commits wissen, oder in der Lage sein, ein Protokoll wie oben zu drucken, das zeigt, dass beide ihre Tags, falls vorhanden, übertragen. Und wenn ich sehe, dass ein neues Feature hinzugefügt wurde, würde ich es v1.5.0 markieren.

Wie gehst du damit um? Soll ich also Tags verwenden? Was soll ich in die Tag-Nachricht schreiben? Ich lasse es immer leer: git tag -a v1.2.3 -m ''


75
2017-08-22 23:53


Ursprung


Antworten:


git log <yourlasttag>..HEAD ?

Wenn Sie möchten, wie in Ihrem Beispiel, in der ersten Zeile mit Commit-ID + Nachricht, dann

git log <yourlasttag>..HEAD --oneline

und falls du dein letztes Tag nicht kennst oder dies dynamisch sein willst, kannst du es unter Windows tun

for /f "delims=" %a in ('git describe --tags --abbrev^=0') do @set latesttag=%a
git log %latesttag%..HEAD --oneline

und auf Linux

git log `git describe --tags --abbrev=0`..HEAD --oneline

Wenn Sie einen Fall kennen, in dem Sie ein Tag im Verlauf kennen und alles von diesem Tag bis zur aktuellen Situation drucken möchten, möchten Sie vielleicht auch hinzufügen --decorate so würde es irgendwelche Tags dazwischen drucken.


146
2017-08-22 23:59



Wenn Ihr aktuelles Commit auch ein Tag ist und Sie die Änderungen seit dem letzten Tag dynamisch abrufen möchten, ohne das neueste Tag oder den vorherigen Tag-Namen zu kennen, können Sie Folgendes tun:

git log --oneline $(git describe --tags --abbrev=0 @^)..@

Beachten Sie, dass @ Kurzform für HEAD.


22
2017-07-30 09:17