将 git 子模块的一部分放到不同的位置
Put part of a git submodule to different location
我想使用 git submodule
将另一个 Python 库包含到我的应用程序中。唯一的问题是,我需要将实际模块放入一个特殊位置,以便我可以从中加载它。我已经考虑过一个脚本,它可以简单地将我需要的内容从子模块复制到它需要的位置,但我希望已经有一个现有的解决方案。
如果子模块更新时我需要的不同位置的子模块的内容能自动同步就好了。最后让我简要说明一下我遇到的问题:
git submodule add git@github.com:nr-python/nr.async.git vendor/nr.async
cp vendor/nr.async/src libs/nr.async.egg
现在,如果我更新子模块,我将需要再次复制内容。
cd vendor/nr.async && git pull origin master && cd ../..
rm -r libs/nr.async && cp vendor/nr.async/src libs/nr.async.egg
您可以将存储库的工作树放在任何您喜欢的地方 -- 您也可以将工作树的存储库放在任何您喜欢的地方。
要为存储库配置工作树,请执行
git config core.worktree /path/to/worktree
要配置工作树的回购路径,将回购放在你想要的地方(并命名任何你想要的)然后做
echo gitdir: /path/to/repo >/path/to/worktree/.git
您还可以覆盖 git 将使用环境变量 GIT_DIR
和 GIT_WORK_TREE
.
通过文件系统找到的路径
我想使用 git submodule
将另一个 Python 库包含到我的应用程序中。唯一的问题是,我需要将实际模块放入一个特殊位置,以便我可以从中加载它。我已经考虑过一个脚本,它可以简单地将我需要的内容从子模块复制到它需要的位置,但我希望已经有一个现有的解决方案。
如果子模块更新时我需要的不同位置的子模块的内容能自动同步就好了。最后让我简要说明一下我遇到的问题:
git submodule add git@github.com:nr-python/nr.async.git vendor/nr.async
cp vendor/nr.async/src libs/nr.async.egg
现在,如果我更新子模块,我将需要再次复制内容。
cd vendor/nr.async && git pull origin master && cd ../..
rm -r libs/nr.async && cp vendor/nr.async/src libs/nr.async.egg
您可以将存储库的工作树放在任何您喜欢的地方 -- 您也可以将工作树的存储库放在任何您喜欢的地方。
要为存储库配置工作树,请执行
git config core.worktree /path/to/worktree
要配置工作树的回购路径,将回购放在你想要的地方(并命名任何你想要的)然后做
echo gitdir: /path/to/repo >/path/to/worktree/.git
您还可以覆盖 git 将使用环境变量 GIT_DIR
和 GIT_WORK_TREE
.