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.
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.
Odpowiedzi:
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 fooi baroba znajdują się w Twoim bieżącym katalogu:
$ ls
foo bar
Przejdź do foorepozytorium:
$ cd foo
Dodaj barrepozytorium jako zdalne i pobierz je:
$ git remote add bar ../bar
$ git remote update
Utwórz nową gałąź bazw foorepozytorium na podstawie tego, czym jest twoja obecna gałąź:
$ git checkout -b baz
Scal gałąź somebranchz barrepozytorium do bieżącej gałęzi:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-historiesnie jest wymagane przed wersją git 2.9)
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:
git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update
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 theirsjako opcję git mergew ostatnim kroku.
Jeśli chcesz dodać go do podkatalogu, prawdopodobnie powinieneś użyć podmodułów git
Korzystając z przewodnika od Larsks, mogłem to zrobić za pomocą SourceTree.
--allow-unrelated-historiesdo polecenia git merge.