Eine Gabel synchronisieren
Die Einrichtung
Bevor Sie synchronisieren können, müssen Sie eine Fernbedienung hinzufügen, die auf das Upstream-Repository verweist. Möglicherweise haben Sie dies getan, als Sie ursprünglich gegabelt haben.
Tipp: Durch die Synchronisierung Ihrer Verzweigung wird nur Ihre lokale Kopie des Repositorys aktualisiert. Ihr Repository auf GitHub wird nicht aktualisiert.
$ git remote -v
# List the current remotes
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
$ git remote add upstream https://github.com/otheruser/repo.git
# Set a new remote
$ git remote -v
# Verify new remote
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
upstream https://github.com/otheruser/repo.git (fetch)
upstream https://github.com/otheruser/repo.git (push)
Synchronisieren
Es sind zwei Schritte erforderlich, um Ihr Repository mit dem Upstream zu synchronisieren: Zuerst müssen Sie von der Fernbedienung abrufen, dann müssen Sie den gewünschten Zweig mit Ihrem lokalen Zweig zusammenführen.
Holen
Durch das Abrufen aus dem Remote-Repository werden die Zweige und die entsprechenden Commits eingebunden. Diese werden in Ihrem lokalen Repository unter speziellen Zweigen gespeichert.
$ git fetch upstream
# Grab the upstream remote's branches
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/otheruser/repo
* [new branch] master -> upstream/master
Wir haben jetzt den Hauptzweig des Upstreams in einem lokalen Zweig, Upstream / Master, gespeichert
$ git branch -va
# List all local and remote-tracking branches
* master a422352 My local commit
remotes/origin/HEAD -> origin/master
remotes/origin/master a422352 My local commit
remotes/upstream/master 5fdff0f Some upstream commit
Zusammenführen
Nachdem wir das Upstream-Repository abgerufen haben, möchten wir seine Änderungen in unserer lokalen Niederlassung zusammenführen. Dadurch wird dieser Zweig mit dem Upstream synchronisiert, ohne dass unsere lokalen Änderungen verloren gehen.
$ git checkout master
# Check out our local master branch
Switched to branch 'master'
$ git merge upstream/master
# Merge upstream's master into our own
Updating a422352..5fdff0f
Fast-forward
README | 9 -------
README.md | 7 ++++++
2 files changed, 7 insertions(+), 9 deletions(-)
delete mode 100644 README
create mode 100644 README.md
Wenn Ihre lokale Niederlassung keine eindeutigen Commits hatte, führt git stattdessen einen "Schnellvorlauf" durch:
$ git merge upstream/master
Updating 34e91da..16c56ad
Fast-forward
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Tipp: Wenn Sie Ihr Repository auf GitHub aktualisieren möchten, befolgen Sie die Anweisungen hier