我有一个项目,用于在路径中包含子模块mysubmodule.我从源代码(1.8.3-rc2)安装了最新的Git并运行git submodule deinit mysubmodule.然后我删除了.gitmodules文件并提交了更改.我还.git从mysubmodule文件夹中删除了该目录.
我现在想mysubmodule直接将文件提交到我的仓库,但是git说没有变化.如果我输入git add mysubmodule它什么都不做.如果我输入git add mysubmodule/file.txt它说fatal: Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'
我还发现,如果您查看一个新版本的repo,它会创建一个mysubmodule目录,尽管没有.gitmodules文件.跑步git submodule init会给你一个No submodule mapping found in .gitmodules for path 'mysubmodule'错误.
我该如何解决?
我得到了git子模块(一厢情愿的想法?),我想出更具体的问题,这是一个好兆头......
我试图找到超级项目引用的子模块的哪个版本,在.gitmodules和中.git/config,但是没有提到......
场景是我正在更改其根位置(从中导入它们)的子模块,然后将它们拉入"子模块化"的位置......
除了从超级项目中提交以将这些更改合并到超级项目仓库之外,我是否还需要git update注册新的拉入式子模块提交?
基本上问题是:
git submodule update只有当我第一次克隆超级项目时,或者每次拉动子模块(来自它自己的回购)后,我才需要" "吗?
谢谢
在哪里可以看到 中提到的 gitlink 条目gitsubmodules(7)?
对于工作目录为 的子模块path/to/bar/,gitlink 条目应该位于/path/to/bar并包含子模块提交的 SHA-1 哈希值?
$ git submodule status
139dedcb98fca8fb69d70305709783ff40316cd4 tabulous (0.5.0-2-g139dedc)
24afe922e6a05891756ecf331f39a1f6743d3d5a vim-repeat (v1.2-9-g24afe92)
f51a26d3710629d031806305b6c8727189cd1935 vim-surround (v2.1-18-gf51a26d)
$ ls -la tabulous/
total 72
drwxr-xr-x 8 nlykkei staff 256B Apr 5 17:25 ./
drwxr-xr-x 5 nlykkei staff 160B Apr 4 12:00 ../
-rw-r--r-- 1 nlykkei staff 67B Apr 4 12:00 .git
-rw-r--r-- 1 nlykkei staff 21B Apr 4 12:00 .gitignore
-rw-r--r-- 1 nlykkei staff 18K Apr 4 12:00 LICENSE
-rw-r--r-- …Run Code Online (Sandbox Code Playgroud)