Wie bearbeite ich eine falsche Commit-Nachricht mit TortoiseGit?


Antworten:


159

Wenn das Commit der Leiter der aktuellen Niederlassung ist, ist das einfach.

  1. Kontextmenü -> Git Commit
  2. Aktivieren Sie das Kontrollkästchen "Letztes Commit ändern"
  3. Korrigieren Sie Ihre Commit-Nachricht
  4. OK

Wenn das Commit der Kopf eines anderen Zweigs ist, wechseln Sie zuerst zu diesem Zweig.

  1. Kontextmenü -> TortoiseGit -> Switch / Checkout
  2. Wählen Sie den Filialnamen
  3. OK
  4. Befolgen Sie die obigen 1-4 Schritte, um die Commit-Nachricht zu ändern

Wenn sich das Commit in der Mitte befindet, ohne dass eine Zusammenführung zwischen dem Kopf erfolgt, müssen Sie es zurücksetzen, ändern und auswählen

  1. Kontextmenü -> TortoiseGit -> Protokoll
  2. Wählen Sie das Menü Commit -> Kontext -> Zurücksetzen
  3. Hard Reset ( dies verwirft alle Arbeiten, die in Commits über dem ausgewählten Commit enthalten sind, sowie alle nicht festgeschriebenen Änderungen im Arbeitsverzeichnis. )
  4. OK
  5. Befolgen Sie die obigen 1-4 Schritte, um die Commit-Nachricht zu ändern
  6. Wählen Sie von Kopf zu einem Commit darüber -> Kontextmenü -> Cherry-Pick
  7. Fortsetzen

12
Ich vermisse die "Log-Nachricht bearbeiten" von TortoiseSVN wirklich. Gibt es eine Chance, dass sie eine solche Funktion hinzufügen?
Benoit Blanchon

3
Ich bin in Schritt 6 verloren. Was meinst du mit "Von Kopf zu einem Commit darüber auswählen"? Ist das eine Option im Kontextmenü?
Flethuseo

1
auch in Schritt 6 verloren. Keine Cherry Pick-Option, und ich kann das Commit oben auf keinen Fall sehen (sagt nur Änderungen des Arbeitsverzeichnisses, von denen es tatsächlich keine gibt)
Robert Ivanc

13
Downvote, weil ich denke, dass die Vorschläge für den Fall, dass sich das Commit in der Mitte befindet, dazu geführt haben, dass ich meine Codeänderungen bis zu diesem Commit verworfen habe, was mehrere Wochen Arbeit bedeutet.
Samuel

8
WARNUNG: Verwenden Sie "Zweig in dieser Version erstellen", um einen temporären Zweignamen festzulegen, bevor Sie auf das Commit zurücksetzen, das Sie ändern möchten. Andernfalls besteht die Gefahr, dass Sie alle Commits über diesem Punkt verlieren. (Wenn Ihnen dies bereits passiert ist, können Sie git reflogsie leichter abrufen.)
Steve Pitchers

18

Für den Fall, dass sich das Commit in der Mitte befindet, empfehle ich dringend, die Anweisungen von linquize nicht zu befolgen. Die Gründe hierfür finden Sie in den Kommentaren unter seiner Antwort.

  1. Sie können die Git-Befehlszeile mit TortoiseGit verwenden und es werden keine Probleme verursacht: Kann ich Befehlszeilen-Git-Tools und TortoiseGit gleichzeitig verwenden? .

  2. Dieses Youtube-Video erklärt es wirklich gut: http://youtu.be/4YjKY0u9Z6I . Verwenden Sie grundsätzlich git rebase -i und "formulieren" Sie dann einfach die Festschreibungsnachricht neu.

Update: Ich glaube, Sie können die verlorenen Commits aus dem von linquize vorgeschlagenen Hard-Reset abrufen. Siehe Waynes Antwort hier: Wie kann ich Commits mithilfe der Git-Rebase neu anordnen / kombinieren? .


7
Einverstanden. git braucht unglaublich lange, um zu lernen, wie man es benutzt, SVN war so einfach. Das Konzept von Git ist einfach, aber seine Verwendung nicht.
Samuel

TortoiseGit bietet auch interaktive rebase, die Sie nicht brauchen die Befehlszeile für diese zu verwenden.
Peter

13

Ich würde sagen, dass die beste Methode zum Ändern einer Commit-Nachricht darin besteht, die force rebaseOption in Tortoisegit zu verwenden.

Siehe diese Antwort unter So ordnen Sie Commits (Rebase) mit TortoiseGit neu an . Dieselbe Methode kann zum Bearbeiten von Festschreibungsnachrichten verwendet werden.

  • Wenn Sie sich im Rebase-Dialogfeld befinden, klicken Sie mit der rechten Maustaste auf das Commit, das Sie bearbeiten möchten, und wählen Sie die EditOption aus. Sie können mehrere Commits bearbeiten.
  • Klicken Sie auf die Start RebaseSchaltfläche.
  • Rebase wird bei den Commits angehalten, für die Sie markiert haben Edit
  • Klicken Sie Commit Messageunten auf die Registerkarte und bearbeiten Sie die Nachricht
  • Klicken Sie auf die AmendSchaltfläche, um fortzufahren
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.