把 gitit submodule 变成普通文件夹
Posted 苏格拉底的落泪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了把 gitit submodule 变成普通文件夹相关的知识,希望对你有一定的参考价值。
# git submodule
abstract
- clone 包含子模块的项目
- 更新子模块
clone 包含子模块的项目
- 方式一
git clone url // 默认会包含子模块文件夹,但是子模块中没有文件
进入子模块目录
cd directory // 进如子模块所在目录
git submodule init // 初始化子模块仓库
git submodule update // 检出文件到目录 但是本地还没有分支
- 方式二(推荐)
git clone url --recursive // 自动初始化 更新子模块
更新具体的某个子模块
- 拉取 更新 子模块
cd submoduleDirectory
git fetch
git merge
切换到主项目目录 查看子模块更新内容
cd ..
git diff --submodule
怕麻烦每次输入 --submodule
添加一个log
git config --global diff.submodule log
git diff
更新项目所有的子模块
项目主目录下
git submodule update --remote // 默认 master 分支
配置其他分支
git config -f .gitmodules submodule.submoduleName.branch branchName
查看更新内容
git status
git config status.submodulesummary 1
git diff
项目中创建子模块
git submodule add url
git status // 配置文件 .gitmodules
git diff
git diff --submodule
git diff --cached --submodule
子模块上工作
git submodule update // 运行之后文件更新到了目录 但是本地没有默认分支,需要自己建立
git checkout master // 检出master分支
git submodule update --remote --merge //
// 修改模块文件内容之后 提交合并
git submodule update --remote --rebase
// 主项目文件夹下
git push --recurse-submodules=check // 推送前检查子模块 子模块没有推送就返回失败
git push --recurse-submodules=on-demand // 推送主项目前 检查子模块并推送子模块
以上是关于把 gitit submodule 变成普通文件夹的主要内容,如果未能解决你的问题,请参考以下文章