Another question sagte git pull
ist wie ein git fetch
+ git merge
.git ziehen VS git holen git rebase
Aber was ist der Unterschied zwischen git pull
VS git fetch
+ git rebase
?
Another question sagte git pull
ist wie ein git fetch
+ git merge
.git ziehen VS git holen git rebase
Aber was ist der Unterschied zwischen git pull
VS git fetch
+ git rebase
?
Es sollte ziemlich offensichtlich aus Ihrer Frage sein, dass Sie tatsächlich nur nach dem Unterschied zwischen git merge
und git rebase
fragen.
Nehmen wir an, Sie sind im üblichen Fall - Sie haben etwas Arbeit in Ihrem Master-Zweig getan, und Sie ziehen von der Herkunft, die auch etwas Arbeit getan hat. Nachdem die holen, die Dinge so aussehen:
- o - o - o - H - A - B - C (master)
\
P - Q - R (origin/master)
Wenn Sie an diesem Punkt (das Standardverhalten von Git-Pull) zusammenführen, vorausgesetzt, es gibt keine Konflikte, erhalten Sie auf den Punkt:
- o - o - o - H - A - B - C - X (master)
\ /
P - Q - R --- (origin/master)
Wenn auf der anderen Seite Sie die entsprechende Fütterungsmaterial tat, würden Sie mit diesem Ende:
- o - o - o - H - P - Q - R - A' - B' - C' (master)
|
(origin/master)
der Inhalt Ihrer Arbeit Baum sollte das gleiche in beiden Fällen am Ende; Sie haben gerade eine andere Geschichte erstellt, die dazu führt. Durch das Umbenennen wird Ihr Verlauf neu geschrieben, sodass Sie so aussehen, als ob Sie den ursprünglichen Hauptverzweigungszweig des Ursprungs (R
) anstelle des ursprünglich zugesagten Ursprungs (H
) übernommen hätten. Sie sollten die Rebase-Methode niemals verwenden, wenn bereits jemand aus Ihrer Master-Zweigstelle herausgezogen wurde.
Beachten Sie, dass Sie git pull
für einen bestimmten Zweig tatsächlich einrichten können, um Rebase statt Merge zu verwenden, indem Sie den Konfigurationsparameter branch.<name>.rebase
auf True setzen. Sie können dies auch für einen einzelnen Zug mit git pull --rebase
tun.
Wha t passiert, wenn Sie Rebase, nachdem jemand bereits aus Ihrem Master-Zweig gezogen hatte? Würde das den Repo brechen? –
Woher wissen Sie, ob jemand aus Ihrem Master-Zweig gezogen hat? – Frank
Wenn Sie nicht sicher sind, dass jemand * nicht * hat, sollten Sie davon ausgehen, dass sie es haben. –
Als Antwort auf Ihre erste Aussage 'Git Pull ist wie ein Git Fetch + Git fusionieren.‘
Genauer gesagt "auf den Standardmodus, git pull durch git merge FETCH_HEAD gefolgt Abkürzung für git fetch", git pull läuft git mit den gegebenen Parametern holen und ruft git merge die abgerufene zu fusionieren Zweig Köpfe in den aktuellen Zweig“
(Ref: https://git-scm.com/docs/git-pull)
Für Ihre zweite Aussage/Frage: 'Aber was ist der Unterschied zwischen Git-Pull-VS git holen + git rebase' Wieder aus derselben Quelle:
„Mit --rebase, läuft es git statt git merge rebase."
Nun, wenn Sie den Unterschied zwischen holen und verschmelzen fragen wollte, also auch hier beantwortet: https://git-scm.com/book/en/v2/Git-Branching-Rebasing (die Differenz zwischen Veränderung der Art und Weise Versionsgeschichte aufgezeichnet und was nicht)
jemand sollte den Link aufräumen ... und ich bin erstaunt, wie viele Stimmen diese andere Frage bekam. – xenoterracide
@xeno: Ich denke es ist nur eine Zählung von wie viele Leute gehen "Ich hatte diese Frage auch" – bobobobo
Eines Tages ich ' Ich werde Zeit finden, wirklich die Git-Dokumentation zu lesen, aber bis dahin füge ich meine Stimmen zu diesen Arten von Fragen hinzu –