我实际上是在尝试学习如何使用git,包括git submodule
子命令。我已经设置了服务器,可以在其中使用SSH托管,推送和拉动git存储库。我在此服务器上创建了一个主要的git存储库“ Travail”,在其中我希望将所有项目都放在子模块中。
在我的Travail存储库中,我已经在以下位置添加了我的项目作为子模块tools/libft
:我能够开发该子模块,进行推入和拉出。
但是,当我尝试添加另一个子模块(从服务器上的fdf.git命名为fdf)时,出现以下问题:
git submodule add ssh://XXX.XXX.XXX.XXX:XXXXX/opt/git/fdf.git projets/fdf
可以在本地使用远程工具找到'projets / fdf'的git目录:origin ssh://git@XXX.XXX.XXX.XXX:XXXXX / opt / git / fdf.git如果要重用此本地git目录,而不是从ssh://XXX.XXX.XXX.XXX:XXXXX / opt / git / fdf.git再次克隆,请使用'--force'选项。如果本地git目录不是正确的仓库,或者您不确定这意味着什么,请使用'--name'选项选择另一个名称。
实际上在这里没有子目录 projets/
我在另一个线程上阅读,我应该使用git submodule sync
或编辑.gitmodules文件,在该文件中,子模块的原始存储库的URL可能已更改。
但是我的.gitmodules文件仅包含有关我的第一个子模块(工具/ libft)的信息,而不包含有关projets / fdf的信息:
[submodule "tools/libft"]
path = tools/libft
url = ssh://git@XXX.XXX.XXX.XXX:XXXXX/opt/git/libft.git
作为一名法国学生,我可能会错过英语文档中的某些内容,但是我进行了搜索,但我真的不明白为什么会遇到这个问题。
如果能得到解决方案,我将感到很高兴,但仅作一个解释也会有所帮助。
/Travail/.git/modules/projets/
找到了fdf
目录。这似乎不在工作树中,而在较早的提交中。会产生问题吗?