Ich habe meine Code-Entwicklung in meiner lokalen Zweigstelle gemacht und Commit-Kommentare wie gezeigt (temporär, temp2) hinzugefügt, wobei ich denke, dass ich die Commit-Nachricht neu erstellen und ändern kann, bevor ich zum Remote-Repository dränge. Aber nach diesen beiden Commits habe ich aus einem Remote-Repository gezogen und bin mit meiner lokalen Niederlassung verschmolzen. Aber danach kann ich kein spezifisches Commit vor dem Zusammenführen rebasen, so dass ich die Commit-Nachricht bearbeiten kann. Ich benutze SourceTree als Client für GIT. Gibt es eine Möglichkeit, diese Commit-Nachricht zu bearbeiten, bevor ich drücke?Änderungskommentare in GIT
Antwort
Wenn Sie eine interaktive rebase tun, können Sie die Commit-Nachrichten umformulieren. Es könnte ein Weg sein, es mit Ihrem gui zu tun, was Sie über die Befehlszeile verwenden können:
$ git rebase -i origin/master
wird
‚wählen‘ Ersetzen in einem Code-Editor eine Liste Ihrer Commits Anzeige von ‚reword 'um die Nachricht zu bearbeiten. Sie könnten auch ‚Squash‘ begehen die zweite in die erste,
Ich habe versucht, aber es heißt, dass es nicht in der Lage, die Rebase auf bestimmte Commit, die Remote-Zweig ist (dieser Zweig, den ich zusammengeführt) anwenden. – kernel
Eine Lösung wäre verpflichtet werden Zurückspulen zurück, die Bearbeitung in einer Weise, die Sie wünschen und Rosinenpickerei die Upstream diejenigen:
Kasse
temporary
begehengit reset --hard d19d86b
bearbeiten Commitnachricht
git commit --amend
Kirsche-Pick
temp
begehen und ändern:git merge master_integration
Wenn Sie
dev_ProgramView
brauchen commit - es fügen auch:git cherry-pick 68a0bcd git commit --amend
mit
master_integration
Mergegit cherry-pick dev_ProgramView
Alle Commit-Hashes und Zweignamen stammen aus Ihrem Bild.
Dies ist ziemlich genau der richtige Weg, mit einem Vorbehalt.Als Sicherheitsnetz würde ich dem Commit 'adb321a' einen * neuen * Zweig oder Tag-Namen zuweisen, auf den aktuell der Branch-Name' dev_ProgramView' zeigt. Ich kann aus den Bildern nicht erkennen, welcher Zweig aktuell ist (oder tatsächlich war) (bevor der "Rebase-i" gestartet wurde). Hinweis für das OP: Stellen Sie sicher, dass Sie "git rebase --abort" verwenden, um die laufende oder fehlgeschlagene Rebase abzubrechen, bevor Sie eines der oben genannten Schritte ausführen. – torek
@torek danke für das Hinzufügen! Ein anderer Weg wäre, sich auf "git reflog" zu verlassen, wenn man sich in der Masse der Commits verliert. – manzur
Ich vermeide all diese ausgefallenen GUIs selbst: Sie füllen eine dringend benötigte Lücke. (Ich brauche meine Lücke!) Von der Kommandozeile aus kann man oft 'git rebase -i' für Fälle wie diesen ausführen. Ich kann nicht genug von dem Diagramm in Ihrem Clip sehen, um festzustellen, ob Sie einen komplexeren Befehlszeilenbefehl benötigen, aber auf jeden Fall hilft Ihnen das nicht in der GUI .... – torek
Sie könnten die Kommentare für ändern das letzte Commit mit 'git commit --amend'. Es akzeptiert nur die Spitze des aktuellen Zweigs, der in Ihrem Fall "merge related" ist. Alternativ könnten Sie die letzte Zusammenführung zurücksetzen, Ihre Commits auf die ursprüngliche Remote-Zweigstelle rebasieren. –
@torek Ich habe das versucht, aber es sagt, dass es die Rebase nicht auf bestimmte Commits anwenden kann (das ist der entfernte Zweig (dieser Zweig) Ich fusionierte)) – kernel