如何组合两个单独的Git存储库?

Jam*_*oks 1 git

我克隆了一个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
    
    Run Code Online (Sandbox Code Playgroud)

    即,当我在其他机器上提取这些更改时,我会有新版本的pylookup吗?

  2. pylookup/*每当pylookup更新时,我是否只是让我的emacs repo忽略并在每台机器上更新它.如果有一些repo和几台机器,这会很烦人,但我可以忍受它.

  3. 是否有一些聪明的技巧git submodule.如果是这样,你能提供解释我真的不懂文档.我如何为emacs和pylookup提取更改.

  4. 我是否使用答案2,但制作一个脚本来更新所有子回购.如果我这样做,每次pylookup改变时我都可以在每台机器上运行一次.


几个可能的相关职位.

Ben*_*mes 5

如果你创建一个 Git子模块:

$ git submodule add git://github.com/tsgates/pylookup.git pylookup
$ git submodule init pylookup
$ git submodule update pylookup
Run Code Online (Sandbox Code Playgroud)

假设pylookup有一些变化,你想得到它们:

$ cd pylookup
$ git pull origin master
$ cd ..
$ git add pylookup
$ git commit -m "Track new commit of pylookup"
Run Code Online (Sandbox Code Playgroud)