Ich begann meine Arbeit Master - Zweig denken , dass meine Aufgabe leicht sein würde. Nach einer Weile wurde mir klar, dass es mehr Arbeit kosten würde und ich möchte all diese Arbeit in einer neuen Niederlassung erledigen.
Wie kann ich einen neuen Zweig erstellen und all diese Änderungen mitnehmen, ohne den Meister zu beschmutzen ?
git
git-branch
willcodejavaforfood
quelle
quelle
branch current changes
vsexisting uncommited branch
. Jeder, der Englisch spricht, wird sofort feststellen, dass sie gleich sind, Suchmaschinen jedoch wahrscheinlich nicht. Behalte diese Frage.Antworten:
Wenn Sie noch keine Festschreibung vorgenommen hätten, würden nur (1: Zweig) und (3: Kasse) ausreichen.
Oder in einem Befehl:
git checkout -b newBranch
Wie in der
git reset
Manpage erwähnt :master
" Branche zu sein. Sie möchten sie in einem Themenzweig weiter polieren, also erstellen Sie einen Zweig "topic/wip
" aus dem aktuellenHEAD
.master
Zweig zurück, um diese drei Commits zu entfernen.topic/wip
Zweig " " und arbeiten Sie weiter.Hinweis: Aufgrund des "destruktiven" Effekts eines
git reset --hard
Befehls (er setzt den Index und den Arbeitsbaum zurück. Alle Änderungen an den nachverfolgten Dateien im Arbeitsbaum werden seitdem<commit>
verworfen) würde ich lieber gehen mit:Dies würde sicherstellen, dass ich keine private Datei verliere (nicht zum Index hinzugefügt).
Die
--soft
Option berührt weder die Indexdatei noch den Arbeitsbaum (setzt jedoch den Kopf zurück<commit>
, genau wie in allen Modi).Mit Git 2.23+ würde der neue Befehl
git switch
den Zweig in einer Zeile erstellen (mit der gleichen Art vonreset --hard
, also hüte dich vor seiner Wirkung):quelle
git reset --hard
wird Ihre Änderungen zerstören, und wenn sie noch nicht festgeschrieben sind, können sie nicht wiederhergestellt werden! Sie brauchen vielleicht nurgit checkout -b …
git checkout -b
erste gesetzt.topic_wip
würde auch funktionieren;)Wie in dieser Frage angegeben: Git: Erstellen Sie einen Zweig aus nicht getaggten / nicht festgeschriebenen Änderungen auf master : stash ist nicht erforderlich.
Benutz einfach:
git checkout -b topic/newbranch
Nicht festgeschriebene Arbeiten werden in die neue Niederlassung übernommen.
Wenn Sie versuchen zu pushen, erhalten Sie die folgende Meldung
Gehen Sie einfach wie vorgeschlagen vor, um den Zweig remote zu erstellen:
git push --set-upstream origin feature/feature/NEWBRANCH
quelle
Folge diesen Schritten:
Erstellen Sie einen neuen Zweig:
Kasse neuer Zweig: (Dadurch wird Ihre Arbeit nicht zurückgesetzt.)
Legen Sie jetzt Ihre Arbeit an diesem neuen Zweig fest:
Wenn Sie die obigen Schritte ausführen, bleibt Ihr ursprünglicher Zweig sauber und Sie müssen kein 'git reset --hard' durchführen.
quelle
-s
in Schritt 3.Da Sie noch keine Commits vorgenommen haben, können Sie alle Ihre Änderungen im Stash speichern, erstellen und zu einem neuen Zweig wechseln und diese Änderungen dann wieder in Ihren Arbeitsbaum einfügen:
quelle
git stash push
das kein Befehl ist. Sie möchten vermutlichgit stash
oder verwendengit stash save
. Wenn Sie nicht verfolgte Dateien in den Vorrat aufnehmen möchten, verwenden Sie die--include-untracked
Option. Wenn Sie sowohl nicht verfolgte als auch ignorierte Dateien in den Stash aufnehmen möchten, verwenden Sie--add
stattdessen die Option.So fügen Sie einem neuen Zweig neue Änderungen hinzu und drücken auf Remote:
Oft vergesse ich, den Ursprungsteil hinzuzufügen, um zu pushen, und bin verwirrt, warum ich den neuen Zweig / Commit in Bitbucket nicht sehe
quelle