2016-03-22 24 views
6

Ich bin ein Anfänger in Git und versuchen, den Unterschied zwischen git pull vs git rebase zu lernen. Kann mir jemand ein Beispiel geben, wann ich welche Option nutzen soll, da ich denke, dass beide dem gleichen Zweck dienen.Git Pull vs Git Rebase

+0

Haben Sie versucht, die Dokumentation zu lesen? Spoiler: Sie dienen nicht dem gleichen Zweck –

+0

Ich habe die Dokumentation gelesen. Wie ich schon sagte, dass ich ein Anfänger bin und angefangen habe zu lernen. – user4943236

+0

@TimCastelijns können Sie Peters Antwort sehen. Er hat ausdrücklich gesagt, dass diese eng miteinander verbunden sind, und deshalb entstand die Verwirrung und daher habe ich eine Frage gestellt. Kannst du downvote entfernen – user4943236

Antwort

8

Git-Pull - Holen aus und integriert mit einem anderen Repository oder einer lokalen Niederlassung GIT PULL

Grundsätzlich Sie Remote-Zweig auf Ihrem lokales, Beispiel ziehen:

git pull origin master 

Will ziehen Master-Zweig in Ihr lokales Repository

git-rebase - Forward-Port lokale Commits zum aktualisierten Upstream-Kopf GIT REBASE

Dieser lokalen Änderungen oben auf Änderungen vorgenommen remote von anderen Benutzern setzen. Zum Beispiel:

  • Sie einige Änderungen zum Beispiel SOME-FEATURE genannt auf Ihrer lokale Niederlassung begangen haben
  • auf anderen Funktionen Dein Freund in der Zwischenzeit arbeitet und er fusionierte seine Niederlassung in Master

Jetzt Sie möchten seine und Ihre Änderungen in Ihrer lokalen Niederlassung sehen. Also dann Kasse Sie master Zweig:

git checkout master 

dann können Sie ziehen:

git pull origin master 

und dann gehen Sie zu Ihrer Branche:

git checkout SOME-FEATURE 

und Sie können master do rebase zu bekommen Letzte Änderungen davon und setzen Sie Ihre Branche verpflichtet, oben:

git rebase master 

Ich hoffe, jetzt ist es ein bisschen klarer für Sie.

12

git pull und git rebase sind nicht austauschbar, aber sie sind eng miteinander verbunden.

git pull ruft die neuesten Änderungen des aktuellen Zweigs von einem Remote ab und wendet diese Änderungen auf Ihre lokale Kopie des Zweigs an. Im Allgemeinen erfolgt dies durch Zusammenführen, d. H. Die lokalen Änderungen werden in die entfernten Änderungen zusammengeführt. So ist git pullgit fetch & git merge ähnlich.

Rebasing ist eine Alternative zum Zusammenführen. Anstatt ein neues Commit zu erstellen, das die beiden Zweige kombiniert, verschiebt es die Commits eines der Zweige über den anderen.

Sie können mit Rebase statt Merge ziehen (git pull --rebase). Die lokalen Änderungen, die Sie vorgenommen haben, werden über die Remote-Änderungen hinaus neu erstellt, anstatt mit den Remote-Änderungen zusammengeführt zu werden.

Atlassian als einige ausgezeichnete documentation on merging vs. rebasing.