Ich ertappte mich dabei, dass ich meine Commits ziemlich oft änderte. Ich tue nicht stash
Das liegt daran, dass ich oft vergesse, was ich gemacht habe, vor allem, wenn ich das, was ich gemacht habe, vor meiner Abreise oder vor einem Wochenende speichern möchte. Das Problem ist nur, dass, wenn ich die Übertragung ändere, sie immer noch auf das ursprüngliche Autorendatum eingestellt ist. Gibt es eine (einfache) Möglichkeit, es beim Ändern zu aktualisieren?
Antworten
Zu viele Anzeigen?Sie können das Autorendatum mit dem Befehl --date
Parameter zu git commit
. Wenn Sie also die letzte Übertragung ändern und das Autorendatum auf das aktuelle Datum und die aktuelle Uhrzeit aktualisieren möchten, können Sie dies tun:
git commit --amend --date="$(date -R)"
(Die -R
Parameter zu date
weist es an, das Datum im RFC 2822-Format auszugeben. Dies ist eine der Datumsformate, die von git commit
.)
Eine andere Möglichkeit ist
git commit --amend --reset-author
Dies ändert sowohl den Commit-Autor als auch das Datum - aber wenn es ursprünglich Ihr nicht gepushter Commit war, ist das ein No-op.
Sie können auch Folgendes hinzufügen --no-edit
wenn Sie das Datum mehrerer Übertragungen aktualisieren wollen, die Übertragungen aber unberührt bleiben sollen. Auf diese Weise werden Sie nicht aufgefordert, die Nachricht für jeden Commit zu bearbeiten.
Ich mag die Antwort von Mark und habe sie selbst mehrmals verwendet, aber jetzt arbeite ich mit OS X und date -R
wird nicht unterstützt. Aber alles ist viel einfacher, als die ursprüngliche Antwort vermuten ließ, verwenden Sie einfach leere Zeichenkette !
git commit --date= --amend
UPDATE:
Sie können auch versuchen
git commit --date="$(date)" --amend
Oder in neuen Versionen von git
git commit --date=now --amend
Ich habe dieses npm-Paket erstellt, falls jemand noch nach einer einfachen Möglichkeit sucht, das Datum von mehreren Commits zu ändern.
https://github.com/bitriddler/git-change-date
Verwendung:
npm install -g git-change-date
cd [your-directory]
git-change-date