Bearbeiten der Git-Commit-Nachricht in GitHub


173

Gibt es eine Möglichkeit, die Commit-Nachricht GitHub.comnach dem Absenden online zu bearbeiten ?

Über die Kommandozeile kann man tun

git commit --amend -m "New commit message"

wie in einer anderen Frage richtig vorgeschlagen .

Versuchen git pullund dann git pushhat funktioniert (ohne dass sich in der Zwischenzeit ein anderes Commit eingemischt hat).

Aber kann es über die GitHubWebsite erfolgen?


Bitte lesen Sie die Antwort von @ DanGreen-Leipciger, auch wenn sie nicht akzeptiert wird.
RBT

Antworten:


101

Nein, das ist nicht direkt möglich. Der Hash für jedes Git-Commit wird ebenfalls basierend auf der Commit-Nachricht berechnet. Wenn Sie die Festschreibungsnachricht ändern, ändern Sie den Festschreibungs-Hash. Wenn Sie dieses Commit verschieben möchten, müssen Sie diesen Push erzwingen (git push -f). Aber wenn bereits jemand Ihr altes Commit gezogen und eine Arbeit basierend auf diesem Commit gestartet hat, müsste er seine Arbeit auf Ihr neues Commit zurückführen.


Ich könnte auch Git Pull und dann Git Push machen und es hat funktioniert. Aber anscheinend gibt es keinen Online-Weg.
PNS

Ab

Und ich denke, es wird keine hohe Priorität haben, da Sie den Commit-Verlauf eines bereits veröffentlichten Zweigs ändern würden, was Sie niemals tun sollten (außer wenn Sie zu 200% sicher sind, dass niemand diesen Zweig auf seinem lokalen Computer hat).
Dunni

Dies ist nur zur Hälfte wahr. Es ist wahr, aber nur mit Annahmen. Die Antwort wäre besser, wenn sie mit der von @DanGreen (unten) kombiniert würde. Es ist nicht "direkt möglich", und es kommt sicherlich mit Vorwarnungen (dh: "Sie sollten dies" niemals "tun ... [außer wenn Sie sicher sind, dass Sie es wollen]") - aber einfach zu sagen, dass dies nicht der Fall ist möglich, wenn es technisch möglich ist, ist eine unvollständige Antwort.
Bane

1
Das OP fragte, ob es möglich sei, dies online auf der Github-Website zu tun. AFAIK das ist noch nicht möglich. Meine Antwort ist also gültig, und die Antwort von Dan Green behandelt nur die Vorgehensweise vor Ort, nicht auf der Githubs-Website.
Dunni

144

GitHubs Anweisungen dazu:

  1. Navigieren Sie in der Befehlszeile zu dem Repository, das das Commit enthält, das Sie ändern möchten.
  2. Geben Sie git commit --amendund drücken Sie die Eingabetaste.
  3. Bearbeiten Sie in Ihrem Texteditor die Festschreibungsnachricht und speichern Sie die Festschreibungsnachricht.
  4. Verwenden Sie den git push --force example-branchBefehl, um das Überschreiben des alten Commits zu erzwingen.

Quelle: https://help.github.com/articles/changing-a-commit-message/


11
ACHTUNG! Der Unterschied zwischen der Verwendung von <git commit --amend> & <Enter> und <git commit --amend -m "new commit message"> besteht darin, dass Sie im ersten Fall Ihre Commit-Nachricht in einem Texteditor bearbeiten & im 2. ersetzen Sie es durch die "neue Commit-Nachricht". Wenn Sie den Push erzwingen, wird das Commit auf Ihrer Fernbedienung ersetzt. Dies löst NICHT das Problem, dass Sie, wenn andere Personen in Ihrem Team das vorherige Commit ausgeführt haben, jetzt unterschiedliche Historien (einschließlich unterschiedlicher Commits) auf verschiedenen Computern haben. Wenn Sie wissen, dass niemand Ihr Commit gezogen hat, ist dies sicher. Quelle lesen Dan geschrieben
TMin

7
git commit --amendhat es immer gegeben. Außerdem verwechseln Sie git (ein Open-Source-Befehlszeilentool) und Github (ein Unternehmen, das ein Online-Quellhosting anbietet).
Vinyll

1
Das OP fragte nach GitHub und speziell danach, nachdem das Commit auf seine Server übertragen wurde. Dies sind die Anweisungen von GitHub, um das zu tun, wonach das OP gefragt hat.
Dan Green-Leipciger

3
@ DanGreen-Leipciger - ja, aber dies geschieht nicht auf der Website selbst, sondern über die Kommandozeile. Ich denke, PNS wollte das über die Weboberfläche tun.
PhistucK

2
Das OP fragte, wie es speziell mit GitHub gemacht werden soll. Dies ist, wie es speziell mit GitHub gemacht werden soll.
Dan Green-Leipciger

30

Sie müssen git push -fdavon ausgehen, dass noch niemand das andere Commit ausgeführt hat. Passen Sie auf, Sie ändern die Geschichte.


3

Nein, da die Festschreibungsnachricht mit dem Festschreibungs-SHA / Hash verknüpft ist und wenn wir sie ändern, wird auch der Festschreibungs-SHA geändert. Ich habe einen Kommentar zu diesem Commit erstellt. Ich kann nicht anders denken.


2

Für Intellij-Benutzer: Wenn Sie Änderungen auf interaktive Weise für frühere Commits vornehmen möchten, die nicht übertragen werden, führen Sie die folgenden Schritte in Intellij aus :

  • Wählen Sie Versionskontrolle
  • Wählen Sie Protokoll
  • Klicken Sie mit der rechten Maustaste auf das Commit, für das Sie den Kommentar ändern möchten
  • Klicken Sie auf Umformulierung
  • Getan

Ich hoffe es hilft


0

Ich hatte das gleiche Problem.

Sehen Sie in Ihrem Github nach einem bestimmten Zweig und Sie werden die Commit-ID des allerersten Commits in diesem Zweig kennenlernen. Machen Sie eine Rebase dazu:

Git Rebase -i

Der Editor wird geöffnet. Verfolgen Sie Ihre Commits über die Github-Benutzeroberfläche und den geöffneten Editor und ändern Sie die Nachrichten.

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.