Seit git 1.6.3 git rebase
hat --committer-date-is-author-date
für diesen Zweck.
git rebase --committer-date-is-author-date
Ursprüngliche Antwort:
Es gibt keine einfache Möglichkeit, den Committer Daten (edit: aber siehe "bearbeiten 2" weiter unten) einzustellen. Die Autor Termine sind einfach zu (Commit-Zeit) zu justieren, da --date
Sie jeden angeben können, wie Sie gehen.
Die Umgebungsvariable GIT_COMMITTER_DATE
kann zum Erzwingen eines anderen Zeitstempels zum Zeitpunkt des Commits verwendet werden. Beachten Sie jedoch, dass Sie dies für jeden Commit, den Sie "wiederholen" müssen, anpassen müssen. Der resultierende neue Commit wird einen anderen SHA-1 haben (weil Sie einige Bits darin geändert haben, nämlich das Committer-Datumsfeld), was bedeutet, dass Sie alle seine abgeleiteten Commits wiederholen müssen.
Dies ist, was git filter-branch
tut (erstellen Sie einige, viele oder alle Commits mit Änderungen auf dem Weg gemacht, halten eine Zuordnung von alten SHA-1-IDs zu neuen SHA-1 IDs und Anpassung der Eltern von even-sonst -berührte Commit-Kopien, so dass die "neue" DAG der neuen SHA-1-IDs mit der "alten" DAG auf jede mögliche Weise übereinstimmt, dh in jeder Hinsicht mit Ausnahme der SHA-1-IDs und anderer Änderungen, die von Ihren Filtern vorgenommen wurden).
Mit anderen Worten, um dies zu tun, müssen Sie git filter-branch
verwenden, um Geschichte neu zu schreiben, mit allem, was dies bedeutet. [Edit: Sie buchstäblich es tun können, ohne git filter-branch
, zum Beispiel, indem sie es in git rebase -i
stattdessen tun, aber die Wirkung ist das gleiche.]
Edit 2: als uvb in einem Kommentar darauf hingewiesen (seit entfernt), git rebase
hat --committer-date-is-author-date
für diesen Zweck. Es macht immer noch die gleiche Geschichte neu schreiben, aber es ist viel bequemer als mit dem rohen git filter-branch
Befehl.
Verwandte zu http://stackoverflow.com/questions/454734/how-can-one-change-the-timestamp-of-an-old-commit-in-git? – Martin
Ja, aber ich habe tatsächlich die neuen Daten gepusht. – kevingoos
Die neuen Commit-Daten spiegeln jedoch die Realität wider. Warum willst du die Wahrheit verbergen? –