Verschieben Sie vorhandene, nicht festgeschriebene Änderungen in einen neuen Branch in Git

John Wachira 15 Februar 2024
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.

  1. Verwenden Sie den Befehl git checkout oder den Befehl git switch.
  2. 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.

Arbeitsbereich des Entwicklungszweigs

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 Wachira avatar John Wachira avatar

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

Verwandter Artikel - Git Stash