Git - объединить ветку из другого хранилища - PullRequest
7 голосов
/ 22 июня 2011

Надеюсь, это не кажется очевидным. У меня есть два репозитория Git. Мы решили разделить одну ветку из первого хранилища на подмодуль git. Сейчас я использую этот субмодуль, однако люди помещают коммиты в первый репозиторий в ветку, которая была превращена в субмодуль.

Как я могу объединить изменения из ветви в первом репозитории во вновь созданный второй репозиторий? (Который мы сейчас используем как субмодуль)

Я попытался добавить еще один пульт во второе хранилище и объединить эту ветку, используя:

git remote add otherOrigin git-Blah@blah.blah:originalRepo.git
git merge otherOrigin originalBranch

Однако я получаю:

fatal: 'otherOrigin' does not point to a commit

Спасибо

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

Если два репо для данной ветви (одно делится как субмодуль в Repo1, хотя и сохраняется в Repo2), изначально имеют общую историю , то это должно быть возможно теория, до:

  • разделить ветку в Repo2 как отдельный репо
  • добавить это отдельное репо в качестве пульта текущего субмодуля репо
  • попробуйте выполнить слияние оттуда.

Но это может быстро стать проблемой, если вам придется повторять этот процесс на регулярной основе (если вы не можете написать его).

1 голос
/ 22 июня 2011

клонируйте ваш репозиторий.Теперь используйте filter-branch, чтобы просто сохранить изменения того, что должно быть в вашем подмодуле.добавьте этот репо в качестве удаленного из вашего подмодуля.получить ветку с этого нового пульта.Используйте git rebase --root --onto, чтобы «поместить» изменения в некоторый момент в истории вашего подмодуля.

Надеюсь, это поможет.

...