Verschieben Sie vorhandene, nicht festgeschriebene Änderungen in einen neuen Branch in Git
In diesem Artikel wird der Vorgang zum Verschieben von nicht festgeschriebenen Änderungen in einen neuen Zweig erläutert.
Möglicherweise arbeiten Sie an Ihrem master
-Zweig und stellen fest, dass Sie einen neuen Zweig erstellen und die nicht festgeschriebenen Änderungen verschieben müssen. Wenn Sie in einer ähnlichen Situation sind, bleiben Sie dabei.
Vorhandene, nicht festgeschriebene Änderungen in einen neuen Zweig verschieben
Nehmen Sie dieses hypothetische Szenario: Sie arbeiten an Ihrem master
-Branch und stellen fest, dass Ihr Code getestet werden muss, bevor Sie sich auf den master
festlegen können.
Sie müssen einen neuen Branch erstellen, die nicht festgeschriebenen Änderungen verschieben und Ihren master
-Branch zurücksetzen. Wie gehen Sie vor?
Dazu gibt es zwei Möglichkeiten.
- Verwenden Sie den Befehl
git checkout
oder den Befehlgit switch
. - Mit dem Befehl
git stash
.
die Befehle git checkout
und git switch
Wenn Sie Git schon seit Ewigkeiten verwenden, wissen Sie wahrscheinlich, dass der Befehl git checkout
mehrere Verwendungszwecke hat. Sie wissen, dass wir den Befehl git checkout
verwenden können, um einen neuen Zweig zu erstellen und zu ihm zu wechseln.
Angenommen, wir befinden uns in unserem master
-Zweig und unser Arbeitsbereich sieht so aus:
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to ...)
(use "git checkout -- <file>..." to ...)
modified: LICENSE.md
modified: README.md
Untracked files:
(use "git add <file>..." to include...)
scripts.txt
no changes added to commit (use..)
Wie übertragen wir diese Änderungen auf einen neuen Zweig?
Um die Änderungen in einen neuen Zweig zu verschieben, zum Beispiel einen neuen Entwicklungs
-Zweig, führen wir Folgendes aus:
$ git checkout -b development
Alternativ können wir den Befehl git switch
verwenden, wie unten dargestellt.
$ git switch -c development
Beide Befehle erstellen einen Zweig Entwicklung
und verschieben unsere nicht festgeschriebenen Änderungen in den neuen Zweig. Nachfolgend finden Sie unser Arbeitsverzeichnis zum Zweig Entwicklung
.
Wir können die Dateien dann zum Index hinzufügen und festschreiben.
Wenn wir zurück zum Zweig master
wechseln und den Befehl git status
ausführen, sehen wir, dass unser Arbeitsbaum sauber ist.
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
den git stash
-Befehl
Wir können Änderungen mit dem Befehl git stash
in einen neuen Zweig verschieben. Dadurch werden die nicht festgeschriebenen Änderungen in einer Patch-Datei gespeichert.
$ git stash
Sie können dann einen neuen Zweig erstellen, in dem Sie die nicht festgeschriebenen Änderungen speichern. Verwenden Sie den Befehl git checkout
, um den neuen Branch zu erstellen und zu ihm zu wechseln, wie unten gezeigt.
$ git checkout -b <new branch>
Öffnen Sie den Stash, um die nicht festgeschriebenen Änderungen im Arbeitsbereich des neu erstellten Zweigs anzuwenden. Verwenden Sie die Befehle git stash pop
oder git stash apply
.
$ git stash pop
Möglicherweise treten Zusammenführungskonflikte auf, die Sie manuell nach Ihren Wünschen lösen müssen. Wenn Sie mit Ihren Änderungen zufrieden sind, fahren Sie mit dem Festschreiben fort.
Kurz gesagt, um nicht festgeschriebene Änderungen von einem Zweig in einen anderen zu verschieben, haben Sie zwei Möglichkeiten. Sie können den Befehl git stash
oder die herkömmlichen Befehle git switch
und git checkout
verwenden.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn