Hinweis: ähnliche Frage wie diese , aber mit einigen wichtigen Änderungen.
Ich habe die folgende Funktion, um das Datum eines Commits neu zu schreiben, mit der Commit-ID:
%Vor% Ich versuche, eine ähnliche Funktion rewrite-commit-message
zu implementieren, um die Commit-Nachricht zu ändern. Was ich will ist:
rewrite-commit-message
akzeptiert zwei Parameter: commit_id
und new_commit_message
commit_id
reicht aus, um zu wissen, welche Änderung zu bestätigen ist git commit --amend
, da dies mit alten Commits zusammenhängt (nicht unbedingt mit dem letzten Commit) git push -f
filter-branch
dafür verwenden, aber ich weiß nicht, wie ich:
test
-Funktion verwendete rewrite-commit-date
wird in env-filter
verwendet, aber ich werde hier nicht env-filter
eingeben, da ich nichts verwandtes ändern möchte in die Commit-Umgebung, aber die Commit-Nachricht. --msg-filter
benötigt die ursprüngliche Commit-Nachricht. Die ursprüngliche Commit-Nachricht interessiert mich nicht. Gibt es ein --force-msg-filter
oder ähnliches? Was ich suche ist ähnlich wie dies , aber mit einigen Vorbehalten:
Dieses kleine Skript funktioniert mit folgenden Einschränkungen:
Dies wird Ihren Verlauf vom Commit an die Spitze des Zweiges umschreiben. Weil Sie in der Frage angegeben haben, dass dies kein Problem ist, qualifiziert sich das.
Ihr Commit ist im Zweig master
enthalten. Sie können dies leicht ändern, indem Sie den Branch-Namen als einen anderen Parameter übergeben, aber das commit besser in der Verzweigung ist. Sie sollten wahrscheinlich eine Validierung einbauen, vielleicht mit git rev-parse --abbrev-ref HEAD
oder vielleicht git branch --all --contains <commit>
Ohne weitere Umschweife:
%Vor%%Vor%%Vor%
%Vor%
Tags und Links git git-commit git-rewrite-history amend