Ich habe jemandes Repository auf GitHub gegabelt und möchte meine Version mit Commits und Updates aktualisieren, die im ursprünglichen Repository vorgenommen wurden. Diese wurden gemacht, nachdem ich meine Kopie gegabelt hatte.
Wie kann ich die im Ursprung vorgenommenen Änderungen übernehmen und in mein Repository integrieren?
git push --force origin --tags
die vorgeschlagenen Lösungen aus!Antworten:
Sie müssen das ursprüngliche Repository (das von Ihnen gegabelte) als Remote hinzufügen.
Von der GitHub-Gabel-Manpage :
Sie haben auch einen Rubinstein, der diese GitHub-Operationen erleichtern kann .
Siehe auch " Git-Gabel ist Git-Klon? ".
quelle
git rebase upstream/master
, aber ich habe die beiden Möglichkeiten in der Antwort hinzugefügt.git push --force
ersetzen den Verlauf Ihres Zweigs auf GitHub durch Ihren lokalen Zweig, den Sie gerade neu gegründet haben. Da nur Sie traurigen Zweig verwenden, ist kein Chaos beteiligt.Zusätzlich zu VonCs Antwort können Sie sie noch weiter nach Ihren Wünschen anpassen.
Nach dem Abrufen aus dem Remote-Zweig müssten Sie die Commits noch zusammenführen. Ich würde ersetzen
mit
da Git Pull im Wesentlichen Git Fetch + Git Merge ist.
quelle
git rebase upstream master
Beachten Sie, dass dies nicht konfliktfrei ist, wenn Sie ausreichend davon abgewichen sindupstream/master
. Siehe git-scm.com/docs/git-rebase (tl; dr: Dies setzt Ihren lokalen Master auf den von Upstream zurück und versucht dann, alle lokalen Commits vom Punkt der Divergenz an neu zusammenzuführen)Dieses Video zeigt, wie Sie eine Gabel direkt von GitHub aus aktualisieren
Schritte:
Pull Requests
.New Pull Request
. Standardmäßig vergleicht GitHub das Original mit Ihrer Gabel, und es sollte nichts zu vergleichen geben, wenn Sie keine Änderungen vorgenommen haben.switching the base
. Jetzt vergleicht GitHub Ihre Gabel mit dem Original und Sie sollten die neuesten Änderungen sehen.Create a pull request
für diesen Vergleich auf und weisen Sie Ihrer Pull-Anfrage einen vorhersehbaren Namen zu (z. B. Aktualisierung vom Original).Create pull request
.Merge pull request
und führen Sie schließlichConfirm
zusammen. Wenn Ihre Gabel keine Änderungen hatte, können Sie sie automatisch zusammenführen.quelle
switching the base
OptionVerwenden:
Dadurch wird Ihr Upstream auf das Repository gesetzt, aus dem Sie gegabelt haben. Dann mach das:
Dadurch werden alle Zweige einschließlich des Masters aus dem ursprünglichen Repository abgerufen.
Führen Sie diese Daten in Ihrer lokalen Hauptniederlassung zusammen:
Übertragen Sie die Änderungen in Ihr gegabeltes Repository, dh in den Ursprung:
Voila! Sie sind mit der Synchronisierung des ursprünglichen Repositorys fertig.
quelle
Wenn Sie die GitHub-Desktopanwendung verwenden, befindet sich oben rechts eine Schaltfläche zum Synchronisieren. Klicken Sie darauf und dann
Update from <original repo>
oben links.Wenn keine zu synchronisierenden Änderungen vorhanden sind, ist dies inaktiv.
Hier sind einige Screenshots , um dies zu vereinfachen.
quelle
Wenn es nichts zu verlieren gibt, können Sie auch einfach Ihre Gabel löschen. Gehen Sie einfach zu den Einstellungen ... Gehen Sie zum Abschnitt Gefahrenzone unten und klicken Sie auf Repository löschen. Anschließend werden Sie aufgefordert, den Repository-Namen und Ihr Kennwort einzugeben. Danach gabelst du einfach das Original wieder.
quelle
Wenn Sie es ohne CLI tun möchten, können Sie es vollständig auf der Github-Website tun.
New pull request
.Create new pull request
.quelle
Um Ihr gegabeltes Repository automatisch mit dem übergeordneten Repository zu synchronisieren, können Sie die Pull App auf GitHub verwenden.
Weitere Informationen finden Sie in der Readme-Datei .
Informationen zum erweiterten Setup, bei dem Sie Ihre am gespaltenen Repository vorgenommenen Änderungen beibehalten möchten, finden Sie in meiner Antwort auf eine ähnliche Frage hier .
quelle