$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: .gitmodules
# new file: sub1
# new file: sub2
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# projekt.txt
3条答案
按热度按时间qzwqbdag1#
简单!假设
submodule_dir
是你想子模块化的目录的名称(假设它还没有在git控制下)。以后(一旦你高兴了)
nszi6y052#
我不明白你怎么能:根据定义,子模块是来自另一个存储库的SHA1(即,必须存在另一个存储库以使父存储库提取所述SHA1):你必须在父存储库中保存的
.gitmodules
file中引用它的地址。子模块由主存储库中所谓的gitlink树条目组成,该条目引用内部存储库中完全独立的特定提交对象。
定义可以从中克隆子模块存储库的URL。这可能是一个准备传递给git-clone(1)的绝对URL,或者(如果它以
./
或../
开头)一个相对于超级项目原始仓库的位置。因此,您可以在本地创建子模块repo,但无论如何都必须创建它。
ar7v8xwq3#
如果我理解正确的话,这就是我经常为eclipse项目和工作区做的事情。让我们从这个结构开始:
首先初始化子模块和主模块:
要将这些文件夹添加为子模块而不是常规文件夹,只需执行以下命令,并使用像
./sub
这样的相对路径,而不仅仅是sub
现在看起来应该是
最后在父文件夹上执行
git add *
和git commit -m "init parent"
,然后就可以了!如果你现在更改了一个子模块中的文件,你必须先提交子模块,然后再提交父仓库,以便在有人克隆你的父仓库时获得子模块的最新版本。