Hinweis: ähnliche Frage wie this one, aber mit einigen wichtigen Änderungen.Change Commit Nachricht für bestimmte Commit
Ich habe die folgende Funktion das Datum eines Commit neu zu schreiben, da die ID begehen:
rewrite-commit-date() {
local commit="$1"
local newdate="$2"
newdate="$(date -R --date "$newdate")"
echo ">>>> Rewriting commit $commit date: $newdate"
git filter-branch --env-filter \
"if test \$GIT_COMMIT = '$commit'
then
export GIT_AUTHOR_DATE
export GIT_COMMITTER_DATE
GIT_AUTHOR_DATE='$newdate'
GIT_COMMITTER_DATE='$newdate'
fi" &&
rm -fr "$(git rev-parse --git-dir)/refs/original/"
}
ich eine ähnliche Funktion zu implementieren versuchen rewrite-commit-message
um die Nachricht begehen zu ändern. Was ich will, ist:
- Die Funktion
rewrite-commit-message
akzeptiert zwei Parameter: diecommit_id
und dienew_commit_message
- Es gibt keine Notwendigkeit, die alte Commit-Nachricht zu wissen, ist: die
commit_id
mit genügt, um zu wissen, welche begehen ändern
- Nein
git commit --amend
, da dies zu einer alten Commits verwandt ist (nicht unbedingt auf die neueste Festschreibung) - keine Sorgen über die Geschichte umzuschreiben und die Master-Repo: ich in einer Feature-Zweig arbeite, und ich darf tun
git push -f
- Ich möchte
filter-branch
dafür verwenden, aber ich bin nicht sicher, wie man:- die Änderung zu einem bestimmten verpflichten gelten: die
test
in der inenv-filter
verwendet wirdrewrite-commit-date
Funktion verwendet wird, aber ich werde nicht zu tun Sieenv-filter
hier, da ich nichts in Bezug auf die Commit-Umgebung, sondern die Commit-Nachricht ändern möchte. - Wie erzwinge ich eine Commit-Nachricht? Die
--msg-filter
benötigt die ursprüngliche Commit-Nachricht. Die ursprüngliche Commit-Nachricht interessiert mich nicht. Gibt es eine--force-msg-filter
oder ähnliches?
- die Änderung zu einem bestimmten verpflichten gelten: die
Was ich suche ist ähnlich this, aber mit einigen Einschränkungen:
- Sie die Änderung einer Reihe von Commits nicht anwenden, sondern auf eine bestimmte begehen
- I die ursprüngliche Commit-Nachricht nicht interessiert, da ich sie komplett überschreiben möchte