使用Clion新建C++项目JetbrainsGitSubmodules,并enable git, 提交一个first commit, 作为一个父的测试工程.
// 本地文件夹之间克隆测试// 注意:// 1、DestinationRepository目录必须没有在文件系统上创建,或创建了但里面为空,不然会克隆不成功。// 2、与从远程拉取仓库不同,路径的最后不用写.git来表明这是一个仓库git clone f:/work/Code/Clion/JetbrainsGitSubmodules ./abc
同样,新建一个C++项目:Submodule,也启用git并提交。
在主工程下执行命令:
git submodule add f:/work/Code/Clion/test/Submodule-->Cloning into 'F:/work/Code/CLion/JetbrainsGitSubmodules/Submodule'...done.
克隆成功.
克隆后, 主工程提交, 出现新文件: .gitmodules, 与Submodule文件夹, 其中有代码, 提交.
此时, 再本地克隆.
git clone f:/work/Code/Clion/JetbrainsGitSubmodules ./abc>F:\work\Code\CLion\test\abc>ls -a. .. .git .gitignore .gitmodules CMakeLists.txt Submodule main.cpp>F:\work\Code\CLion\test\abc>ls Submodule -altotal 4drwxr-xr-x 1 richard 197610 0 Nov 13 19:28 .drwxr-xr-x 1 richard 197610 0 Nov 13 19:28 ..
可以看到, 克隆出一个空的Submodule文件夹,
F:\work\Code\CLion\test\abc>git submodule initSubmodule 'Submodule' (f:/work/Code/Clion/test/Submodule) registered for path 'Submodule'F:\work\Code\CLion\test\abc>git submodule updateCloning into 'F:/work/Code/CLion/test/abc/Submodule'...done.Submodule path 'Submodule': checked out '1197169c3e9a8fb5f58daa112686b6989a1978ad'F:\work\Code\CLion\test\abc>ls Submodule -altotal 12drwxr-xr-x 1 richard 197610 0 Nov 13 19:33 .drwxr-xr-x 1 richard 197610 0 Nov 13 19:28 ..-rw-r--r-- 1 richard 197610 34 Nov 13 19:33 .git-rw-r--r-- 1 richard 197610 26 Nov 13 19:33 .gitignore-rw-r--r-- 1 richard 197610 124 Nov 13 19:33 CMakeLists.txt-rw-r--r-- 1 richard 197610 112 Nov 13 19:33 main.cpp
在主工程根目录执行 git submodule update, 子工程文件夹会自动clone到本地.
