Kombinieren und Verschieben eines Commits
Wechseln Sie in das Verzeichnis git-tutorial/tutorial6
, das Sie zuvor heruntergeladen haben.
Wenn Sie den Verlauf dieses Repositorys untersuchen, sieht er wie folgt aus:
Wir ändern den Commit mit der Nachricht „append description of the commit command“.
Dazu verwenden wir den Befehl git rebase -i.
$ git rebase -i HEAD~~
Ihr Standard-Texteditor wird geöffnet und listet die Commits von HEAD
bis HEAD~~
auf, wie im Folgenden gezeigt.
pick 9a54fd4 append description of the commit command
pick 0d4a808 append description of the pull command
# Rebase 326fc9f..0d4a808 onto d286baa
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash," but discard this commit log message
# x, exec = run command (the rest of the line) using shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
Ändern Sie in der ersten Zeile das Wort pick
in edit
, speichern Sie, und schließen Sie den Editor.
Sie erhalten die folgende Ausgabe und werden aus diesem Commit ausgecheckt.
Stopped at d286baa... append description of the commit command
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
Öffnen Sie die Datei sample.txt
, und nehmen Sie die Änderungen wie unten gezeigt vor.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
commit: Record index state.
pull: Obtain the content of the remote repository
Verwenden Sie git commit --amend
, um die Änderung zu übertragen.
$ git add sample.txt
$ git commit --amend
Führen Sie dann git rebase --continue
aus, um den Rebase-Prozess abzuschließen.
$ git rebase --continue
Wenn Sie einen Rebase auf Ihrem aktuellen Branch durchführen, können Sie auf Konflikte in Ihren Änderungen stoßen. Um fortzufahren, müssen Sie diese Konflikte manuell auflösen und dann git add
und git rebase --continue
ausführen. Es ist nicht erforderlich, neue Commits vorzunehmen, um die Konflikte zu lösen.
Wenn Sie das Rebasing jedoch beenden möchten, können Sie git rebase --abort
aufrufen, wodurch der gesamte Prozess rückgängig gemacht und beendet und der Commit erfolgreich geändert wird.
Wenn Sie beim Aufruf von git rebase -i
in mehr als einer Zeile edit
angeben, werden Sie aufgefordert, die einzelnen Commits nacheinander zu ändern.