Ich habe im Commit-Nachricht das falsche geschrieben.
Wie kann ich die Nachricht ändern? Der Commit wurde noch nicht gepusht.
Ich habe im Commit-Nachricht das falsche geschrieben.
Wie kann ich die Nachricht ändern? Der Commit wurde noch nicht gepusht.
Sie können auch git filter-branch
dafür verwenden.
git filter-branch -f --msg-filter "sed 's/errror/error/'" $flawed_commit..HEAD
Es ist nicht so einfach wie ein triviales git commit --amend
, aber es ist besonders nützlich, wenn Sie bereits einige Merges nach Ihrer fehlerhaften Commit-Nachricht haben.
Beachten Sie, dass dies versuchen wird, jeden Commit zwischen HEAD
und dem fehlerhaften Commit neu zu schreiben. Sie sollten Ihren msg-filter
-Befehl also sehr klug wählen ;-)
Gibt es eine Version davon, die den Commit nicht ändert, wenn das reguläre Ausdruck nichts findet?
Soweit ich weiß, wird filter-branch --msg-filter auf jeden Fall neue Commits generieren. Du könntest jedoch innerhalb des msg-filters überprüfen, ob das sed erfolgreich war und diese Information verwenden, wenn die filter-branch Operation endet, um deinen Baum auf refs/original zurückzusetzen.
@DavidHogue Dies ist nur dann wahr, wenn die filter-branch-Methode verwendet wird. Die Commit-IDs nach einem modifizierten Commit ändern sich nicht, wenn Sie den interaktiven Rebase verwenden.
Für mich erstellt Verwendung Ihres oben genannten Befehls tatsächlich einen neuen Commit mit einer neuen Commit-ID sowie einem zusätzlichen Commit, der "Merge-Zweig" als Standard-Commit-Nachricht sagt.
Das Ändern von immer erstellt immer einen neuen Commit mit einer neuen Commit-ID. Die Commit-ID ist der SHA-Hash des Inhalts des Commits, einschließlich der Commit-Nachricht und der autorisierten/übermittelten Zeitstempel. Dies ist ein Feature von Git, das, mit Ausnahme von Hash-Kollisionen, sicherstellt, dass zwei Commits mit derselben ID genau derselbe Commit mit genau demselben Inhalt, der gleichen Historie usw. sind.
Stimme Emil zu. Außerdem steht in der Dokumentation, dass "-c" nur Git mitteilt, welche Commit-Nachricht als Standardvorlage für Ihren neuen Commit verwendet werden soll. Es wird bereits standardmäßig "-c " ausführen, daher ist es nicht notwendig, dies anzugeben.
Wenn Sie das Git GUI-Tool verwenden, gibt es eine Schaltfläche namens Letzten Commit ändern. Klicken Sie auf diese Schaltfläche, und dann werden Ihre zuletzt commiteten Dateien und Nachricht angezeigt. Bearbeiten Sie einfach diese Nachricht, und Sie können sie mit einer neuen Commit-Nachricht bestätigen.
Oder verwenden Sie diesen Befehl von einer Konsole/Terminal:
git commit -a --amend -m "Meine neue Commit-Nachricht"
Diese Antwort ist wortwörtlich identisch mit dieser alten Antwort. Hast du bereits vorhandene Antworten überprüft, bevor du eine weitere bereitgestellt hast?
Diese Antwort ist nicht wortwörtlich identisch. Sie ist nicht einmal identisch in der Bedeutung, da diese Antwort die Information hinzufügt, dass dies auch in einem GUI durchgeführt werden kann. Nicht sicher, auf welches GUI er sich bezieht. Ich weiß, dass GitHub Desktop diese Funktion hat und die meisten anderen GUI-Clients wahrscheinlich auch oder sie können mehr.
Sie können Git-Rebasing verwenden. Wenn Sie beispielsweise zurück zum Commit bbc643cd ändern möchten, führen Sie Folgendes aus:
$ git rebase bbc643cd^ --interactive
Ändern Sie im Standardeditor 'pick' in 'edit' in der Zeile des Commits, den Sie ändern möchten. Machen Sie Ihre Änderungen und stagen Sie sie dann mit
$ git add
Jetzt können Sie
$ git commit --amend
verwenden, um den Commit zu ändern, und danach
$ git rebase --continue
um wieder zum vorherigen Head-Commit zurückzukehren.
Wenn Sie nur Ihre letzte Commit-Nachricht ändern möchten, tun Sie Folgendes:
git commit --amend
Dadurch gelangen Sie in Ihren Texteditor und können die letzte Commit-Nachricht ändern.
Wenn Sie die letzten drei Commit-Nachrichten ändern möchten oder eine der Commit-Nachrichten bis zu diesem Zeitpunkt, geben Sie HEAD~3
an das git rebase -i
Kommando an:
git rebase -i HEAD~3
Diese frühere Antwort sagt bereits, dass Sie git commit --amend
verwenden können, und es sagt auch, dass Sie git rebase -i HEAD~commit_count
verwenden können, alles, was Sie getan haben, war 3
für commit_count
einzusetzen.
Auch abgewertet. Die Leute nehmen sich einfach nicht die Mühe, vorhandene Antworten zu lesen.
Dies ist keine vollständige Antwort, es fehlt "Finden Sie den Commit, den Sie möchten, ändern Sie 'pick' in 'r' (reword)..." wie hier erklärt stackoverflow.com/a/28421811/1818723
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
868 Stimmen
Für diejenigen, die noch neu in Git sind: Lauries Hinweis darauf, dass noch nicht gepusht wurde, ist wichtig. Wie beim Rebasieren ändert sich dadurch die Historie. Wenn jemand zwischen der originalen und der umgeschriebenen Historie von deinem Repository geklont/gezogen hat, wird er nach der Änderung nicht mehr in der Lage sein, zu ziehen (für diesen Branch).