2011-06-21 7 views
6

Mam nadzieję, że nie wydaje się to oczywiste. Mam dwa repozytorium git. Zdecydowaliśmy się podzielić jeden oddział z pierwszej repozytorium na moduł podrzędny git. Teraz korzystam z tego podmodułu, jednak ludzie pchają zatwierdzenia do pierwszego repozytorium w gałęzi, która została przekształcona w podmoduł.Git - Połącz oddział z innego repozytorium

Jak scalić zmiany z oddziału w pierwszym repozytorium w nowo utworzone drugie repozytorium? (Które teraz używać jako podmodułem)

Próbowałem dodanie innego pilota do drugiej repo i łączenie tego oddziału w poprzek, używając:

git remote add otherOrigin [email protected]:originalRepo.git 
git merge otherOrigin originalBranch 

jednak uzyskać:

fatal: 'otherOrigin' does not point to a commit 

Dzięki

+0

Wydaje się być duplikatem http://stackoverflow.com/questions/1425892/how-do-you-merge-twoi-git-repositories –

Odpowiedz

2

Jeśli dwie repozytorium, dla danej gałęzi (tej podzielonej jako submoduł w Repo1, podczas przechowywania w Repo2), początkowo mają wspólną historię o , to powinno być możliwe, w teorii, do:

  • podzielić oddział w Repo2 jako indywidualny repo
  • dodać, że poszczególne repo jako pilota obecnego submodule repo
  • spróbować i wykonaj scalać stamtąd.

Ale to może szybko stać się problemem, jeśli trzeba powtarzać ten proces regularnie (chyba, że ​​można go napisać).

+0

... a następnie uderzać ludzi w głowę, aby wielokrotnie je zepsuć . ;-) – ebneter

+1

Niestety nie zaakceptowałem tego wcześniej, byłem zbyt zajęty biciem ludzi po głowie – binarycreations

+0

@Graham: nie ma problemu. Miałem odpowiedzi zaakceptowane ponad * trzy * lata po wysłaniu;) I nie jestem zbyt pewny, czy chcę wiedzieć, co robili w tym czasie ... – VonC

1

Sklonuj swoje repozytorium. Teraz użyj gałęzi filtra, aby zachować zmiany w module częściowym. dodaj to repo jako zdalne z Twojego modułu. pobrać gałąź od tego nowego pilota. Użyj "git rebase --root --onto", aby "umieścić" zmiany w pewnym punkcie historii Twojego modułu częściowego.

Mam nadzieję, że to pomoże.