如何将子目录转换为git repo中的子模块并提交它?

时间:2014-04-09 05:56:23

标签: git git-submodules

我的项目已经设置好了。一些文件来自外部项目。现在,我想使用git来管理来自上游的外部文件的更改。

我做了以下事情:

rm <external files>              # <= should use "git rm"
git commit -m "prepare submodule"

git submodule add <...remote...> extLibs
cd extLibs
git pull master
<make changes>
git commit -m"make external project work with my project"

cd .. # back to upper level project

此时,我发现我必须再次对我已经在子模块中提交的文件中的主仓库进行更改。 我甚至不知道这是否是正确的行为。我可以更改它,所以我不需要提交两次吗?

1 个答案:

答案 0 :(得分:1)

您应该在主回购中看到的唯一变化是gitlink(special entry 160000)引用您的git子模块文件夹应该已更改(不同的SHA1)。
您可以安全地添加和提交一个更改。

如果您看到更多内容,则表示您git rm没有按预期工作。 (git rm -r extLibs/应该完成这项工作)