Heim  >  Artikel  >  Entwicklungswerkzeuge  >  So ändern Sie den Verlauf in Git

So ändern Sie den Verlauf in Git

WBOY
WBOYOriginal
2022-01-14 14:19:278944Durchsuche

Methode: 1. Verwenden Sie den Befehl „git commit --amend“, um den Verlaufsdatensatz einmal zu ändern. 2. Verwenden Sie den Befehl „git rebase -i specite commit number“, um mehrere Verlaufsdatensätze zu ändern. Der Befehl branch --filer „Befehl geänderter Bereich“ schreibt den Verlauf neu.

So ändern Sie den Verlauf in Git

Die Betriebsumgebung dieses Artikels: Windows 10-System, Git-Version 2.30.0, Dell G3-Computer. So ändern Sie den Git-Verlauf Nachdem dieser Befehl ausgeführt wurde, entfernt er das vorherige Commit aus dem aktuellen Zweig, stellt den Arbeitsbereich in dem Zustand wieder her, in dem er zuletzt für die Übermittlung vorbereitet wurde (während die Änderungen nach dem letzten Commit gemischt werden) und zeigt dann eine VIM-Schnittstelle für Sie an und ändern Sie die letzten Commit-Informationen. Nach dem Speichern in vim werden alle aktuellen Änderungen mit neuen Übermittlungsinformationen übermittelt.

Dieser Befehl kann nur den letzten Commit ändern. Ein Befehl entspricht der Ausführung der folgenden Reihe von Aktionen:

    $ORIG_HEAD=`git show`#保存当前的这次提交的 commit 号
    $git reset --soft HEAD^#回到最后一次提交准备提交前的状态
    $...#做一些操作和修改
    $git commit -c $ORIG_HEAD#表示用最后一次提交的提交信息来做为提交信息,不过会调出编辑器界面
Git rebase für Fortgeschrittene

Der vorherige Git-Commit --amend kann nur den letzten Commit ändern, aber wann Aus einer Laune heraus kann uns dieser Befehl nicht retten, wenn unsere Hände deaktiviert sind. Zu diesem Zeitpunkt müssen wir das Killer-Tool git rebase -i verwenden, um diese unerträglichen Ereignisse der Vergangenheit zu ändern. Eigentlich ist git rebase -i kein Befehl, der speziell zum Ändern von Verlaufsdatensätzen verwendet wird, sondern ein Befehl, mit dem wir Rebase-Vorgänge interaktiv (dh einzeln) ausführen können. Wir können diesen Befehl jedoch verwenden, um dies zu erreichen Für Änderungen zur Commit-Historie.

Die Methode zur Verwendung dieses Befehls ist git rebase -i Sie können beispielsweise git rebase -i HEAD~3 verwenden, um drei Übermittlungen zu ändern: diese Übermittlung, die letzte Übermittlung und die vorherige Übermittlung.

Wenn ich diese drei Änderungen übermittle und git rebase -i HEAD~3 eingebe, wird wie im Bild gezeigt die folgende Schnittstelle angezeigt:

Dies ist die Schnittstelle eines VIM-Editors Beim Bearbeiten dieses Skripts können die sechs Befehle in den Kommentaren unten verwendet werden. Nachdem Sie die Seite verlassen haben, auf der Sie sie gerade bearbeiten, führt Git gemäß diesem Skript nacheinander entsprechende Vorgänge für die Einreichungen aus (beginnend mit der frühesten Einreichung).

Wenn Sie nur die Festschreibungsinformationen ändern möchten, ändern Sie alle Auswahl in r, dann: wq Speichern, dann können Sie sie mit Git einzeln ändern, beginnend mit den frühesten Festschreibungsinformationen.

Unter den verbleibenden Befehlen öffnet sich beim Ändern der entsprechenden Übermittlung der HEAD-Zeiger. Zu diesem Zeitpunkt können Sie git commit --amend verwenden, um verschiedene Änderungen daran vorzunehmen Wenn Sie die Übermittlung durchführen, wird git rebase --continue mit dem nächsten Vorgang fortfahren. s führt diese Übermittlung und ihre übergeordnete Übermittlung zu einer Übermittlung zusammen. F ähnelt s, ignoriert jedoch die Informationen der aktuellen Übermittlung Verwenden Sie die Informationen der übergeordneten Übermittlung. x erfordert die Eingabe des Befehls nach x und die anschließende Ausführung, wenn HEAD auf diese Übermittlung zeigt. Diese Befehle können auch verwendet werden, um Übermittlungen neu anzuordnen und Übermittlungen aufzuteilen. So ändern Sie den Verlauf in Git

Der ultimative Killer-Git-Filterzweig

So ändern Sie den Verlauf in GitAngenommen, nachdem wir N-mal eingereicht hatten, stellten wir plötzlich fest, dass die E-Mail-Adressen unserer Einsendungen alle falsch waren (╯°□°)╯︵ ┻━┻, zu diesem Zeitpunkt, Wenn Sie es vorher verwenden, werden die genannten Befehle wahrscheinlich erschöpft sein, bevor sie fertig sind. Zu diesem Zeitpunkt können wir den Zweig mit git filter-branch neu schreiben, der unsere voreingestellten Vorgänge für jede Übermittlung stapelweise ausführen kann Das vom Befehl -branch verwendete Grundformat ist git filter-branch -- Verschiedene Filter stellen unterschiedliche Eingaben und Ausgaben für den Befehl bereit, zum Beispiel --msg -filter bedeutet, die Festschreibungsinformationen zu ändern, die ursprünglichen Festschreibungsinformationen aus der Standardeingabe zu lesen und die neuen Festschreibungsinformationen an die Standardausgabe auszugeben. --tree-filter bedeutet, die Dateiliste usw. zu ändern. Schließlich wird es einen Überschreibbereich geben Zum Beispiel kann git filter-. branch --env-filter 'GIT_AUTHOR_EMAIL=john@example.com export GIT_AUTHOR_EMAIL' HEAD verwendet werden, um das Postfach neu zu schreiben. Es wird empfohlen, vor dem Aufrufen des Befehls einen Zweig zu erstellen und ihn dann auszuführen die Operation für den Zweig, den Sie ändern möchten.

Empfohlenes Lernen: „

Git-Tutorial

Das obige ist der detaillierte Inhalt vonSo ändern Sie den Verlauf in Git. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn