Ich habe meine Verpflichtungen ziemlich oft geändert. Ich nichtstash
so viel, weil ich dazu neige zu vergessen, dass ich es getan habe, besonders wenn ich speichern möchte, was ich getan habe, bevor ich gehe oder vor einem Wochenende, also mache ich einen "Entwurf". Das einzige ist, wenn ich das Commit ändere, wird es immer noch auf das ursprüngliche Autorendatum gesetzt. Gibt es eine (einfache) Möglichkeit, es bei Änderungen zu aktualisieren?
305
Antworten:
Sie können das Autorendatum mit dem
--date
Parameter auf änderngit commit
. Wenn Sie also das letzte Commit ändern und das Autorendatum auf das aktuelle Datum und die aktuelle Uhrzeit aktualisieren möchten, haben Sie folgende Möglichkeiten:(Der
-R
Parameter,date
mit dem das Datum im RFC 2822-Format ausgegeben werden soll. Dies ist eines der Datumsformate, unter denen verstanden wirdgit commit
.)quelle
date
weiß es nicht-R
. Die Verwendungdate
ohne Optionen hat den Job trotzdem!
und die Anführungszeichen entfernen müssen, z. B.can = !git commit --amend --date=\"$(date -R)\"
date -R
funktioniert nicht unter OSX, verwenden Siedate +%s
stattdessengit commit --amend --date="$(date +%s)"
git commit --amend --date=now
funktioniert auch. Es ist nicht erforderlich, eine Unterschale mit dem Befehl date (1) aufzurufen . Sie können es im Quellcode von git (1) in date.c sehen. C 'now' ist ein spezieller Wert, der mit der Funktion date_now () konvertiert wird. Gleiches gilt für 'Mittag', 'Gestern', 'Mitternacht', 'Tee' und andere, die im Strukturarray special [] aufgeführt sind.Ein anderer Weg, dies zu tun, ist
Dies ändert sowohl den Commit-Autor als auch das Datum - aber wenn es ursprünglich Ihr nicht gepushtes Commit war, dann ist das ein No-Op.
Sie können auch hinzufügen,
--no-edit
wenn Sie das Datum für mehrere Festschreibungen aktualisieren möchten, die Festschreibungsnachrichten jedoch unberührt bleiben sollen. Auf diese Weise werden Sie nicht aufgefordert, die Nachricht für jedes Commit zu bearbeiten.quelle
git commit --amend
Änderungen eher festgeschrieben als nur Optimierungen oder ähnliches, dh sie führen zu einem unterschiedlichen Verlauf von Änderungen des Repository-Inhalts, bei denen jedes Versionskontrollsystem sehr streng ist. Und als solches erwarte ich intuitiv, dass sowohl der Autor als auch das Datum mit den tatsächlichen Festschreibungsdaten übereinstimmen. Besonders die Urheberschaft ist wichtig, nicht einmal das Datum. Stimmen Sie diesen Kommentar ab, wenn Sie Git-Entwickler schlagen möchten, die für einen solchen Standard verantwortlich sind. :)Ab Git v2.1.4 (getestet auf Debian 8 (Jessie))
quelle
--no-edit
.Ich mag Marks Antwort und habe sie selbst mehrmals benutzt, aber jetzt bin ich unter OS X und werde
date -R
nicht unterstützt. Aber alles ist viel einfacher als die ursprüngliche Antwort uns denken ließ, benutze einfach eine leere Zeichenfolge !quelle
fatal: invalid date format:
--date="$(date)"
in OS X zu verwenden. Die Option-R
ist GNUism.Ich habe dieses npm-Paket erstellt, wenn jemand noch nach einer einfachen Möglichkeit sucht, die Daten mehrerer Commits zu ändern.
https://github.com/bitriddler/git-change-date
Verwendungszweck:
quelle
npm
Paket? Nein, lernen Sie, wie Sie dengit
Befehl unverändert verwenden.