Gegeben Repo Foo und Repo Bar. Ich möchte Bar mit Foo zusammenführen, aber nur in einem separaten Zweig namens baz
.
git checkout -b baz
<= hier das Bar Repo einfügen.
Sie können ein Repository nicht in einem Zweig zusammenführen . Sie können einen Zweig aus einem anderen Repository in einen Zweig in Ihrem lokalen Repository zusammenführen. Angenommen, Sie haben zwei Repositorys foo
und bar
beide befinden sich in Ihrem aktuellen Verzeichnis:
$ ls
foo bar
Wechseln Sie in das foo
Repository:
$ cd foo
Fügen Sie das bar
Repository als Remote hinzu und rufen Sie es ab:
$ git remote add bar ../bar
$ git remote update
Erstellen Sie einen neuen Zweig baz
im foo
Repository basierend auf Ihrem aktuellen Zweig:
$ git checkout -b baz
Zweig somebranch
aus dem bar
Repository in den aktuellen Zweig zusammenführen:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-histories
ist vor Git Version 2.9 nicht erforderlich)
--allow-unrelated-histories
den git merge befehl hinzufügen .Aktualisiert mit "realen" Befehlen:
Beginnen Sie in Ihrem Repo-Verzeichnis und stellen Sie sicher, dass Ihre Arbeitskopie sauber ist (keine Dateien geändert, hinzugefügt oder entfernt).
Erstellen Sie einen neuen Zweig:
git checkout -b <my-branch>
Fügen Sie die sekundäre Fernbedienung hinzu und rufen Sie sie ab:
Führen Sie einen ihrer Zweige in Ihrem aktuellen Zweig zusammen:
git merge <repo-name>/<their-branch>
Wenn Sie nicht wissen, was
<their-branch>
Sie wollen, dann machen Sie esmaster
Wenn Sie sicher sind, dass Sie alle Remote-Änderungen akzeptieren und Konflikte vermeiden möchten ( überschreiben Sie Ihre ), können Sie im letzten Schritt die
-X theirs
Option für angebengit merge
.Wenn Sie es in ein Unterverzeichnis einfügen möchten, sollten Sie wahrscheinlich Git-Submodule verwenden
quelle
Mit der Anleitung von Larsks konnte ich dies mit SourceTree tun.
quelle