Как объединить два отдельных репозитория Git? - PullRequest
1 голос
/ 04 декабря 2009

Я клонировал git repo , в котором находятся мои файлы конфигурации emacs. Я хотел бы добавить pylookup в подкаталог. Как правильно это сделать?

Ниже приведены варианты, которые я могу придумать.


  1. Если я клонирую его в ~/.emacs.d/pylookup/ и добавлю эту папку в мое репозиторий emacs, будет ли это правильно обновляться, когда я это сделаю:

    cd ~/.emacs.d/pylookup/
    git pull
    cd ~/.emacs.d
    git commit -a -m "updates to pylookup"
    git push
    

    т.е. когда я перенесу эти изменения на другие мои машины, у меня будет новая версия pylookup?

  2. Нужно ли просто заставить репозиторий emacs игнорировать pylookup/* и обновлять его на каждой машине всякий раз, когда обновляется pylookup. Это будет раздражать, если будет несколько репо и несколько машин, но я могу с этим смириться.

  3. Есть ли хитрые трюки с git submodule. Если да, не могли бы вы дать объяснение? Я не совсем понял документацию . Как бы я вытащил изменения для Emacs и Pylookup.

  4. Пойду ли я с ответом 2, но сделаю скрипт для обновления всех суб-репо. Если бы я это сделал, я мог запускать это один раз на каждой машине каждый раз, когда менялся pylookup.


Пара возможных связанных постов.

Ответы [ 2 ]

5 голосов
/ 04 декабря 2009

Если вы создаете подмодуль Git :

$ git submodule add git://github.com/tsgates/pylookup.git pylookup
$ git submodule init pylookup
$ git submodule update pylookup

Допустим, в pylookup есть некоторые изменения, и вы хотите их получить:

$ cd pylookup
$ git pull origin master
$ cd ..
$ git add pylookup
$ git commit -m "Track new commit of pylookup"
0 голосов
/ 15 мая 2012

Я использовал объединение поддеревьев с похожей проблемой - http://git -scm.com / book / ru / Git-Tools-Subtree-Merging . Что-то вроде:

$ git remote add -f pylookup /path/to/pylookup
$ git merge -s ours --no-commit pylookup/master
$ git read-tree --prefix=pylookup/ -u pylookup/master
$ git ci -m "merging pylookup into pylookup subdirectory"

Хороший гид здесь: http://jasonkarns.com/blog/merge-two-git-repositories-into-one

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...