Ich habe weiter gelesen: https://wiki.diasporafoundation.org/Git_workflow#Rebase_your_development_branch_on_the_latest_upstream
Hier ist ein Auszug:
Ihr Repository auf dem neuesten Stand
Um die neuesten Updates vom Entwicklungs-Trunk zu erhalten, führen Sie eine einmalige Einrichtung durch, um das Haupt-GitHub-Repo als Remote einzurichten, indem Sie Folgendes eingeben:
$ git remote add upstream git://github.com/diaspora/diaspora.git
Starten Sie Ihren Entwicklungszweig auf dem neuesten Upstream neu
Um Ihren Entwicklungszweig auf dem neuesten Stand zu halten, müssen Sie Ihre Änderungen zusätzlich zum aktuellen Status des Upstream-Masters neu begründen. Siehe Was ist Git-Rebase? Im folgenden Abschnitt erfahren Sie mehr über das Umbasieren.
Wenn Sie einen Upstream-Zweig wie oben beschrieben und einen Entwicklungszweig namens 100-retweet-bugfix eingerichtet haben, würden Sie den Upstream aktualisieren, Ihren lokalen Master aktualisieren und Ihren Zweig wie folgt neu starten:
$ git fetch upstream $ git checkout master $ git rebase upstream/master $ git checkout 100-retweet-bugfix
[Stellen Sie sicher, dass alles in der Filiale nach Bedarf festgeschrieben ist]
$ git rebase master
Warum muss in diesem Fall ein "Remote-Upstream" hinzugefügt werden? Könnte ich nicht gerade getan haben:
$ git checkout master
$ git pull origin master
$ git checkout 100-retweet-bugfix
[Stellen Sie sicher, dass alles in der Filiale nach Bedarf festgeschrieben ist]
$ git rebase master
git remote add
nichtgit add remote
...Antworten:
Das Wiki spricht aus der Sicht eines gespaltenen Repos. Sie haben die Möglichkeit, vom Ursprung aus zu ziehen und zu schieben. Dies ist Ihre Gabelung für das Haupt-Diaspora-Repo. Um Änderungen von diesem Haupt-Repo zu übernehmen, fügen Sie in Ihrem lokalen Repo eine Fernbedienung "Upstream" hinzu, die auf dieses Original zeigt, und ziehen daraus.
"Origin" ist also ein Klon Ihres Gabel-Repos, aus dem Sie schieben und ziehen. "Upstream" ist ein Name für das Haupt-Repo, von dem aus Sie einen Klon Ihrer Gabel ziehen und auf dem neuesten Stand halten, aber keinen Push-Zugriff darauf haben.
quelle
Dies ist nützlich, wenn Sie eine eigene haben,
origin
die es nicht istupstream
. Mit anderen Worten, Sie haben möglicherweise Ihr eigenesorigin
Repo, in dem Sie Entwicklungs- und lokale Änderungen vornehmen und dann gelegentlichupstream
Änderungen zusammenführen. Der Unterschied zwischen Ihrem Beispiel und dem hervorgehobenen Text besteht darin, dass in Ihrem Beispiel davon ausgegangen wird, dass Sie direkt mit einem Klon des Upstream-Repos arbeiten. Der hervorgehobene Text setzt voraus, dass Sie an einem Klon Ihres eigenen Repos arbeiten, der vermutlich ursprünglich ein Klon von Upstream war.quelle
Ich denke, es könnte zum "rückwirkenden Gabeln" verwendet werden.
Wenn Sie ein Git-Repo haben und jetzt entschieden haben, dass es ein anderes Repo hätte teilen sollen. Rückwirkend möchten Sie, dass es zu einer Gabel wird, ohne das Team, das das Repo verwendet, zu stören, indem Sie es für ein neues Repo benötigen.
Aber ich könnte mich irren.
quelle
Nehmen wir ein Beispiel: Sie möchten zu Django beitragen, also geben Sie dessen Repository auf. Während Sie an Ihrem Feature arbeiten, wird von anderen Personen viel am Original-Repo gearbeitet. Der Code, den Sie gegabelt haben, ist also nicht der aktuellste. Wenn Sie einen Remote-Upstream einstellen und von Zeit zu Zeit abrufen, wird sichergestellt, dass Ihr gespaltenes Repo mit dem ursprünglichen Repo synchronisiert ist.
quelle