Logischerweise sollte dies auf alle drei einen Kommentar sein (zu der Zeit ich dies schrieb) der Antworten, die die Sequenz empfehlen:
git stash
git pull
git stash pop # or "git stash apply" -- "pop" means "apply, then drop"
alle sind fein Antworten. Aber ich brauche Platz, um Dinge zu formatieren und viel zu schreiben.
:-)
Ich will nicht diese Änderungen
Haben Sie keine Angst begehen zu begehen! Sie können auch commit und dann wieder committen. In der Tat macht die Verwendung von git stash
commits: Sie sind nur Commits, die nicht auf Zweig sind. Dies kann etwas mit der zweiten Sache unten helfen. Aber der Schlüssel hier ist zu erinnern, dass Ihre lokalen Niederlassungen sind Ihre, mit zu tun, wie Sie werden.
git fetch
Mit -die ist, was git pull
tut zuerst, bevor es ein zweites tut Ding hat keine Auswirkungen auf Ihre Zweige, nur auf den sogenannten Fernverfolgung Zweige. Diese Remote-Tracking-Zweige sind die Art und Weise, wie Ihr Git sich erinnert, was es auf dem anderen Git unter origin
gesehen hat. Das heißt, Ihre origin/master
zum Beispiel erinnert sich, was sie jetzt haben. Wenn sie Änderungen an ihrem Git vornehmen, fällt Ihr origin/master
allmählich zurück, aber Sie können jederzeit git fetch
laufen lassen und bekommen "was sie jetzt haben" und Ihr origin/master
ist wieder auf dem neuesten Stand. Dies hat keine Auswirkungen auf Ihre eigenen master
.
Nach dem Fetch müssen Sie eine zweite Sache - einen zweiten Git-Befehl - verwenden, um "ihre" Arbeit in einen oder mehrere Zweige zu integrieren. Diese zweite Sache kann git merge
oder git rebase
sein. Wenn Sie git pull
ausführen, haben Sie implizit einen dieser beiden Befehle ausgewählt. Ich argumentiere immer, dass es besser ist, eine explizit zu wählen, so dass Sie wissen, was Sie hier tun, aber wenn Sie möchten, können Sie git pull
wählen lassen. Es wird git merge
standardmäßig auswählen. Dies bedeutet, dass Sie alle Komplikationen von git merge
und keine der Komplikationen von git rebase
bekommen.
Wahrscheinlich wollen Sie überhaupt keine Komplikationen. Das ist ziemlich hart, denn Git ist Git, du bekommst Komplikationen. Manchmal wird die Zusammenführung fehlschlagen. Manchmal schlägt die Rebase fehl. Dies ist einer der Gründe, warum ich argumentiere, dass Sie eine explizit auswählen sollten: wenn git pull
fehlschlägt, müssen Sie wissen, welche zweite Sache ist, dass git pull
lief, die fehlgeschlagen ist!
Ich vermute, dass Sie Commits vermeiden, weil Ihre eigenen Commits es viel wahrscheinlicher für git merge
oder git rebase
scheitern lässt. Das ist wahr! Dies ist auch der Grund, warum git stash
helfen kann.Aber Remember, git stash
macht nur Commits, die nicht auf Ihre Filialen sind - und das bedeutet, dass, wenn Sie hier einen Fehler vermeiden, in den ersten beiden Schritten, die git pull
ausgeführt wird, verschieben Sie nur den Punkt des Scheiterns, wenn Sie un-stash mit git stash pop
oder git stash apply
!
Unterm Strich, wie es war, ist, dass egal, was Sie tun, werden Sie schließlich auf ein Problem stoßen: Sie werden einige Veränderungen haben Sie gemacht haben, dass Konflikte mit etwas ändern jemand anderes gemacht hat.
Sie müssen diese Änderungen kombinieren. Diese Kombination ist eine Aktion - sozusagen ein Verb - dass Git verschmelzt. Dieses Merge-as-a-Verb, diese Aktion des Mergens, passiert sowohl mit git merge
als auchgit rebase
, und es passiert auch mit git stash apply
(das ist die erste Hälfte von git stash pop
).
Es ist nichts falsch daran, dies über git stash
zu tun, aber Sie müssen schließlich lernen, wie es geht. Sobald Sie wissen, wie es geht, können Sie es auch mit git merge
oder mit git rebase
tun. Um das Zusammenführen in Git durchzuführen, werden Sie Commits verwenden müssen, unabhängig davon, ob es sich um die Commits git stash
oder um git commit
handelt. Also habe keine Angst zu begehen! Sie können das natürlich so lange hinstellen, wie Sie möchten - und mit git stash
vor dem Pull können Sie das einfacher machen - aber denken Sie daran, dass git stash
Commits macht und git pull
läuft merges!
erklären, was diese Befehle sind. OP kann nicht wissen, was Stash Pop ist –