2017-06-16 1 views
0

Ich habe ein Commit, das an die Fernbedienung geschoben wurde und ich möchte seine Nachricht ändern.Wie ändere ich den Namen von git commit, der gepusht wurde?

Ich weiß, dass ich git push -f verwenden kann, um verschiedene Push-Commits zu erzwingen, aber zuerst muss ich alte Commit entfernen und Änderungen beibehalten, damit ich erneut committen kann.

Wie kann ich das tun?

Antwort

4

Als ein Disclaimer umfasst diese Antwort das Neuschreiben der Geschichte der fraglichen Branche. Daher sollte es in Branchen, die öffentlich geteilt wurden, mit Vorsicht verwendet werden.

Die einfachste hier zu beheben, unter der Annahme, dass niemand sonst auf das Remote-Pendant der Branche geschoben hat, wäre einfach zu Änderung der Commit über:

git commit --amend 

Dies sollte einen Texteditor bringen, wo Sie können die Commit-Nachricht auf das ändern, was Sie wollen.

Wie Sie erwähnt haben, werden Sie jetzt zwingen, um diesen Zweig drücken auf der Fernbedienung über:

git push --force origin yourBranch 
+0

Danke, ich dachte, 'amend' ist nur für lokale Commits. – jcubic

2

Wenn Sie die neueste verpflichten ändern möchten, verwenden Sie

git commit --amend 

jedoch für bereits geschoben Commits, sollten Sie dies nur tun, wenn Sie sicher sind, dass niemand das Commit ausgecheckt hat, dass Sie überschreiben.

1

gut Sie benötigen git commit --amend den folgenden Befehl verwenden, die die gleiche lokal begehen erstellen, sondern mit der richtigen Botschaft, Sie drücken ihn dann zu entfernte

0

Verwendung:

git commit --amend 

scheinen hier die offensichtliche Lösung zu sein, aber du hast keinen Zweig erwähnen in Ihrer Frage, damit die Antwort in Ihrem Fall nicht die richtige Lösung ist. Wenn der Commit Sie ist auf einem Zweig umbenennen möchten, dass nur Sie bisher erstellt und verwendet und hat sich zu einem anderen Zweig verschmolzen nicht, schlage ich eine andere Option, die ist: von der

  • Branching zu einem neuen Zweig verpflichten, bevor sie in der Frage der Festschreibungs
  • Wieder Durchführung der Codeänderung
  • mit korrekten Nachrichtentext wieder zu begehen
  • drücken der neuen Zweig
  • löschen und Push-of-Löschung des alten Zweig

Dennoch hängt es wirklich davon ab, ob das Commit in einer separaten Niederlassung oder in einer Hauptniederlassung (z.B. Meister).

+0

Ich denke, das Commit in Frage war bereits auf die Fernbedienung geschoben. –

+0

richtig, aber wenn es in einem Zweig ist, den niemand benutzt hat, kann es sicher gelöscht werden. Scheint, dass der Frage die Information über die Verzweigung fehlt. Wie auch immer, scheint, dass er Ihre Antwort akzeptiert hat, so habe ich gerade eine andere Herangehensweise an das Problem vorgeschlagen – yorammi

Verwandte Themen