Joh*_*pel 5 git git-submodules
通过键入创建git子模块后
git submodule add <repo> && git submodule init
Run Code Online (Sandbox Code Playgroud)
我的.git / config已更改,并创建了一个新文件.gitmodules。看来我可以将子模块移动到存储库内以及存储库外的特定文件夹中:
$ cat gitmodules
[submodule "sub_repo"]
path = sub_repo
url = <...>
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将存储库移至父文件夹并更改.gitmodules时
path = ../sub_repo
Run Code Online (Sandbox Code Playgroud)
似乎忽略了'git update'或'git submodule foreach'上的那个模块。
我在这里推理的错误是什么?
非常感谢!
将子模块从其父 repo 移到独立目录中只需更新一些元数据。使用 Git 2.4,步骤如下:
从 repo 开始,假设子模块在my-submodule/
:
mv my-submodule ../
Run Code Online (Sandbox Code Playgroud)删除.git
子模块中的指针文件(注意不是目录):
rm ../my-submodule/.git
Run Code Online (Sandbox Code Playgroud)将子模块的真实 git 元数据移动到子模块的 git 存储库中:
mv .git/modules/my-submodule/ ../my-submodule/.git
Run Code Online (Sandbox Code Playgroud).git/config
通过删除worktree
先前指向存储库内的相对路径的参数来编辑文件。
就是这样!此时,您的父存储库会将子模块显示为deleted
,而子模块本身将正常工作(可能带有分离的 HEAD,您可以将其重置为 master)。
也可以.gitmodules
在父存储库中编辑文件,但我发现不这样做不会破坏任何内容,只要您提交已删除的子模块。
如果其他人知道这样做的更快方法(例如实际的 git 命令),我会全神贯注。
只是不支持,仅此而已。子模块的全部意义基本上是在另一个存储库中拥有一个存储库。
如果您不想这样做,请不要使用子模块。只需克隆其他存储库。
归档时间: |
|
查看次数: |
2624 次 |
最近记录: |