Git

2017-07-04 2 views
1

Ich habe eine lokal (nie an einem entfernten geschoben) Zweig F1 aus Master mit einem paar Commits vs git ziehen --rebase Herkunft lokaler rebase. Ich scheine keinen Unterschied zwischen diesen beiden Aktionen zu verstehen (F1 ist der aktuelle Zweig):Git

git fetch origin 
git rebase master 

und

git pull --rebase origin master 

Meine Erwartung ist, dass sie gleichwertig sein sollen, aber sie sind nicht - verschiedene Ergebnisse werden produziert.

Was ist los mit meinem Denken?

Antwort

2

1.git fetch origin und git rebase master wird von F1 zu lokalen master Zweig Änderungen zu übernehmen. Angenommen, Ihr begeht Geschichte wie unten aussieht, als erster (der Remote-master Zweig begeht J in abgelegenen hat):

A---B---C---D---E master 
     \ 
      F---G---H F1 

Wenn Sie git fetch origin und git rebase master ausführen, auch den origin/master Punkt J, wird es nur F1 Zweig auf dem rebase Anfang der lokalen master Zweig (Commit E als Grafik):

A---B---C---D---E(master)---J origin/master 
       \ 
        F---G---H F1 

2. der Befehl git pull --rebase origin master werden Änderungen von Remote-01 ziehenZweig zuerst, dann Stromzweig rebase F1 auf dem oben drauf:

A---B---C---D---E---J  master,origin/master  
        \ 
         F---G---H F1 

Mit einem Wort, wenn lokale master Zweig ist synchron mit Fern master Zweig, diese beiden Möglichkeiten, das gleiche Ergebnis (rebase F1 Zweig auf die Spitze des Meisterzweiges). Wenn der entfernte Zweig master neue Commits hat, die auf dem lokalen Zweig master nicht vorhanden sind, sind die Ergebnisse unterschiedlich (ein Rebase für den lokalen Zweig master, der andere Zweig für den Zweig origin/master).

-1

nur Remote-Dateien von einem Remote-Repository in Ihre lokale Niederlassung herunterladen.

git rebase master 

nimmt den ganzen Zweig (die Commits, die in Ihrer Branche ist), und auf der Oberseite Ihres lokalen Repository gestellt. Es ändert die Geschichte Ihres Projekts.

git pull --rebase origin master 

git ziehen standardmäßig, führt eine Zusammenführung durch, aber Sie können es mit einer Rebase-Option erzwingen.

überprüfen Sie diese link

Verwandte Themen