3719 Stimmen

Verschieben vorhandener, nicht gebundener Arbeiten in einen neuen Zweig in Git

Ich habe mit der Arbeit an einer neuen Funktion begonnen, und nachdem ich ein wenig programmiert hatte, beschloss ich, dass diese Funktion in einem eigenen Zweig untergebracht werden sollte.

Wie verschiebe ich die bestehenden, nicht freigegebenen Änderungen in einen neuen Zweig und setze meinen aktuellen Zweig zurück?

Ich möchte meinen aktuellen Zweig zurücksetzen und gleichzeitig die Arbeit an der neuen Funktion beibehalten.

7voto

Abu Shoeb Punkte 3998

Option 1 (mit einer bestehenden Zweigstelle)

git stash (from main/any-branch)
git checkout your-existing-branch
git stash apply 

Option 2 (Erstellung eines neuen Zweigs)

git switch -c your-new-branch

5voto

Kristofer Doman Punkte 389

Es gibt jetzt eine wirklich einfache Möglichkeit, dies mit GitHub Desktop zu tun, und ich glaube nicht, dass es diese Funktion vorher gab.

Sie brauchen nur in GitHub Desktop zum neuen Zweig zu wechseln und werden dann gefragt, ob Sie Ihre Änderungen im aktuellen Zweig belassen wollen (der dann zwischengespeichert wird) oder ob Sie Ihre Änderungen in den neuen Zweig mitnehmen wollen. Wählen Sie einfach die zweite Option, um die Änderungen in den neuen Zweig zu übernehmen. Sie können dann wie gewohnt übertragen.

GitHub Desktop

3voto

Dies könnte für alle hilfreich sein, die Werkzeuge für GIT verwenden

Befehl

Zweig wechseln - Ihre Änderungen werden nach new-branch verschoben. Dann können Sie die Änderungen übertragen.

 $ git checkout -b <new-branch>

TortoiseGIT

Klicken Sie mit der rechten Maustaste auf Ihr Projektarchiv und wählen Sie dann TortoiseGit->Umschalten/Abmelden

enter image description here enter image description here

QuellBaum

Verwenden Sie die Schaltfläche "Zur Kasse", um die Zweigstelle zu wechseln. Die Schaltfläche "Auschecken" wird oben angezeigt, nachdem Sie auf einen Zweig geklickt haben. Die Änderungen aus dem aktuellen Zweig werden automatisch übernommen. Dann können Sie sie festschreiben.

enter image description here

1voto

nbs Punkte 181

Ich habe @Robin Antwort und Auflistung all dessen, was ich getan habe,

git status                               <-- review/list uncommitted changes
git stash                                <-- stash uncommitted changes
git stash branch <new-branch> stash@{1}  <-- create a branch from stash
git add .                                <-- add local changes
git status                               <-- review the status; ready to commit
git commit -m "local changes ..."        <-- commit the changes
git branch --list                        <-- see list of branches incl the one created above
git status                               <-- nothing to commit, working tree (new-branch) is clean
git checkout <old-branch>                <-- switch back

! Wenn das Repo mehr als einen Stash hat, sehen Sie, welchen Sie auf den neuen Zweig anwenden müssen:

git stash list  
  stash@{0}: WIP on ...  
  stash@{1}: WIP on ...

und inspizieren Sie die einzelnen Verstecke durch,

git stash show stash@{1}

Oder kontrollieren Sie alle Verstecke auf einmal:

git stash list -p

1voto

Hitesh Sahu Punkte 37527

3 Schritte, um Ihre Änderungen zu bestätigen

Angenommen, Sie haben einen neuen Zweig auf GitHub mit dem Namen Merkmal-Abzweig .

enter image description here

FETCH

    git pull --all         Pull all remote branches
    git branch -a          List all branches now

Checken Sie aus und wechseln Sie in das Verzeichnis der Feature-Zweige. Sie können den Namen der Verzweigung einfach aus der Ausgabe des obigen Befehls branch -a kopieren

git checkout -b feature-branch

VALIDATE

Als nächstes verwenden Sie den Befehl git branch, um den aktuellen Zweig zu sehen. Es wird feature-branch mit * davor angezeigt

git branch         

COMMIT

git add .   add all files
git commit -m "Rafactore code or use your message"

Nehmen Sie das Update und die Push-Änderungen auf dem Ursprungsserver vor

 git pull origin feature-branch
 git push origin feature-branch

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X