Gibt es einen Unterschied zwischen git rebase upstream/master
und git pull --rebase upstream master
, und wenn ja, was? Die Fernbedienung könnte irgendeine Fernbedienung sein, nicht unbedingt stromaufwärts.git Rebase stromaufwärts/Master vs git Pull --rebase stromaufwärts Master
Antwort
Die git pull --rebase
wird fetch (git fetch
) zuerst, Aktualisierung upstream/master
commits.
Wenn Sie einfach ohne erste Aktualisierung upstream/master
rebase, erhalten Sie nicht das gleiche Ergebnis.
ich zeigen es in "master
branch and 'origin/master
' have diverged, how to 'undiverge' branches'?"
SnakE erwähnt in the comments dass git pull --rebase
nicht genaugit fetch && git rebase origin/master
ist.
Siehe "what does "git pull --rebase
" do?"
(origin/master)
|
A--B--C (master)
\
B'--D (actual origin/master after changing B and force pushing)
Welche git pull --rebase
hat, in diesem Fall ist:
git fetch origin
git rebase --onto origin/master B master
hier:
- origin/master die neue, aktualisierte
origin/master
(B'
) ist B
ist die alteorigin/master
(vor ein upgedatet Fetch)master
ist der Zweig auf derorigin/master
replay unterscheidet sich diese von git fetch
+ git rebase origin/master
, dass der pull --rebase
Befehl, um herauszufinden versucht, welche Commits wirklich Ihrem lokalen sind diejenigen, die von stromaufwärts in einem früheren Fetch gekommen waren.
Um dies zu tun, sieht es sich die Reflog der Remote-Tracking-Zweig (in diesem Fall
origin/master
). Dieser Reflog stellt die Spitzen der aufeinanderfolgenden Operationengit fetch
auforigin
in der Reihenfolge "neueste erste" dar.Für jeden Reflog-Eintrag (
origin/[email protected]{1}
, dann...{2}
usw.) wird überprüft, ob dieses Commit ein Vorgänger des aktuellen Zweigkopfsmaster
ist. Sobald es einen gefunden hat, wählt es es als Ausgangspunkt für die Rebase (B
im obigen Beispiel).
- 1. Understanding „git pull --rebase“ vs „git rebase“
- 2. Git Pull vs Git Rebase
- 3. git pull --rebase vs. git rebase: was ist die gefahr?
- 4. Git Rebase nach Pull
- 5. Git - Merge vs Rebase
- 6. git ziehen VS git holen git rebase
- 7. Einen Git ziehen Pull --rebase
- 8. Zeige abgerufene Commits nach Git Pull --rebase
- 9. Git Post-Rebase Haken
- 10. Git pull --rebase konvertiert Leerzeichen in Tabs
- 11. Mercurial-Äquivalent von "git pull --rebase"
- 12. Einen Git Pull - Rebase rückgängig machen?
- 13. erholt von git rebase
- 14. Konflikte mit `git rebase`
- 15. Git - Merge vs Rebase für meinen Workflow
- 16. Unterschied zwischen Git ziehen und Git Pull - Rebase
- 17. git sicher rebase oder „versuchen rebase, Rückfall auf merge“
- 18. Git Merge vs Rebase - Auflösung von Konflikten
- 19. git Rebase auf Remote-Updates
- 20. Git-Zweig hat nach Rebase auseinander gegangen, also warum Rebase?
- 21. git rebase ein single commit
- 22. Git Rebase Änderung Autor?
- 23. Git Svn Rebase fehlschlägt
- 24. Git Rebase fehlgeschlagen
- 25. git rebase verursacht Herkunft/Master und Master zu divergieren
- 26. Git Rebase/Master ändert sich von Zweig in Master
- 27. Rückgängig einen git rebase auf
- 28. Git Rebase wiederholt Konflikte von der letzten Rebase
- 29. Git: Wiederherstellen divergent Repository nach fehlgeschlagenen Rebase
- 30. Git - Update Gabel Master & Rebase meinen Zweig darauf?
Also ist 'git pull --rebase upstream master 'analog zu' git fetch upstream && git rebase upstream/master'? – Dennis
@Dennis ziemlich, ja. – VonC
Eigentlich nein. Stellen Sie sich vor, Sie haben die Geschichte "A-B" gezogen und eine Änderung darüber vorgenommen, "A-B-C". Dann änderte jemand anders "B" zu "B" und schob ihre Änderungen so, dass der Ursprung jetzt "A-B" -d ist. Wenn Sie nun 'git fetch && git rebase origin/master' ausführen, wird die Rebase mit Konflikten fehlschlagen. Aber 'git pull --rebase' wird es herausfinden und mit 'A-B'-D-C' enden. Unter "pull --rebase" passiert definitiv etwas Magie. Edit: [Korrekturlink] (http://gitolite.com/git-pull--rebase.html) – SnakE