Was ist der Unterschied zwischenKann ich git pull --rebase statt "git stash git ziehen git stash pop" verwenden?
git pull --rebase
und
git stash
git pull
git stash pop
Was ist der Unterschied zwischenKann ich git pull --rebase statt "git stash git ziehen git stash pop" verwenden?
git pull --rebase
und
git stash
git pull
git stash pop
git pull: Sie tatsächlich Ausgabe von git + git Befehle fusionieren holen, die mit einem zusätzlichen führen begehen und hässlich merge Blasen in Ihrem Commit-Log .
git pull --rebase: Um das Repository sauber zu halten, werden Sie immer oben auf dem Baum festgelegt, bis Sie sie auf einen Remote-Server schieben. Der Befehl wird alle Ihre noch zu schiebenden Commits auf die Remote-Baum-Commits anwenden, so dass Ihre Commits geradlinig und ohne Verzweigungen sein können.
Ich würde vorschlagen, dass Sie ein experimentelles Repo erstellen und die Befehle ausprobieren . Experimentieren alleine macht das Lernen leichter.
Sie werden feststellen, dass die Befehlssequenz git stash; git pull; git stash pop
nicht committed Änderungen an den aktualisierten Kopf des Master-Zweig verschieben wird. (Es wird auch tun, einen normalen merge, so engagierte Änderungen zusammengeführt werden wird, nicht indexiert, default gitconfig vorausgesetzt)
jedoch git pull -rebase
werden Änderungen bewegen, die haben bereits dem aktualisierten Leiter des Master-Zweig verpflichtet. Wenn Sie diesen Befehl mit einem schmutzigen Arbeit Baum versuchen ausgeführt wird, wird die Fehlermeldung angezeigt:
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Die einfache Antwort auf Ihre Frage in dem Thema ist „Nein“.
Der Unterschied zwischen git pull --rebase
und git pull
ist, dass der erste hat eine fetch
+ rebase
, der zweite ein fetch
+ merge
, außer Sie eine Nicht-Standard-git config die git pull
eine rebase
statt einer Zusammenführung zu tun erzählt. In diesem Fall wären die beiden Befehle identisch.
Der Unterschied zwischen diesen beiden Befehlen beeinflusst in keiner Weise die Notwendigkeit, nicht festgeschriebene Änderungen zu speichern und zu entfernen. Beide benötigen dies, wenn Sie einen schmutzigen Arbeitsbaum haben oder sie werden einen Fehler melden und Ihnen sagen, dass Sie Ihre Änderungen begehen oder speichern sollen.