2017-01-03 6 views

Antwort

-2

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.

8

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 popnicht 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. 
3

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.