Podano repozytorium Foo i pasek repozytorium. Chcę połączyć Bar z Foo, ale tylko w oddzielną gałąź o nazwie baz
.
git checkout -b baz
<= umieść repozytorium Bar tutaj.
Nie możesz scalić repozytorium w gałąź . Możesz scalić gałąź z innego repozytorium w gałąź w swoim lokalnym repozytorium. Zakładając, że masz dwa repozytoria foo
i bar
oba znajdują się w Twoim bieżącym katalogu:
$ ls
foo bar
Przejdź do foo
repozytorium:
$ cd foo
Dodaj bar
repozytorium jako zdalne i pobierz je:
$ git remote add bar ../bar
$ git remote update
Utwórz nową gałąź baz
w foo
repozytorium na podstawie tego, czym jest twoja obecna gałąź:
$ git checkout -b baz
Scal gałąź somebranch
z bar
repozytorium do bieżącej gałęzi:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-histories
nie jest wymagane przed wersją git 2.9)
--allow-unrelated-histories
do polecenia git merge.Zaktualizowano za pomocą poleceń „z życia wziętych”:
Zacznij od katalogu repozytorium, upewnij się, że kopia robocza jest czysta (żadne pliki nie zostały zmienione, dodane ani usunięte).
Utwórz nową gałąź:
git checkout -b <my-branch>
Dodaj dodatkowego pilota, a następnie pobierz go:
Połącz jeden z ich oddziałów w bieżącym oddziale:
git merge <repo-name>/<their-branch>
Jeśli nie wiesz, czego
<their-branch>
chcesz, to idźmaster
Jeśli jesteś pewien, że chcesz zaakceptować wszystkie zdalne zmiany i uniknąć konfliktów ( nadpisać swoje ), możesz określić
-X theirs
jako opcjęgit merge
w ostatnim kroku.Jeśli chcesz dodać go do podkatalogu, prawdopodobnie powinieneś użyć podmodułów git
źródło
Korzystając z przewodnika od Larsks, mogłem to zrobić za pomocą SourceTree.
źródło