This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
library:git:generalcmd [2022/09/05 07:23] lhaosen [CRLF与LF的转换] |
library:git:generalcmd [2023/02/16 17:13] lhaosen [1.7 向下同步子模块仓库] |
||
---|---|---|---|
Line 258: | Line 258: | ||
| | ||
git stash list | git stash list | ||
- | git stash pop | + | git stash pop = git stash apply + git stash drop |
- | = | + | |
- | git stash apply | + | ===== - sub module ===== |
- | | + | |
- | git stash drop | + | ==== - 相关文件 ==== |
+ | | ||
+ | 记录所有子模块的文件 | ||
+ | [submodule " | ||
+ | path = app/pm2 | ||
+ | url = git@codeup.aliyun.com: | ||
+ | |||
+ | | ||
+ | | ||
+ | url = git@codeup.aliyun.com: | ||
+ | active = true | ||
+ | |||
+ | * .git/ | ||
+ | | ||
+ | |||
+ | | ||
+ | 指向主仓库记录子模块的路径 | ||
+ | gitdir: ../ | ||
+ | |||
+ | |||
+ | ==== - 查看所有子模块 ==== | ||
+ | git submodule | ||
+ | |||
+ | |||
+ | ==== - 克隆一个带子模块的仓库 ==== | ||
+ | |||
+ | - 下载主项目: | ||
+ | - git submodule init | ||
+ | - git submodule update | ||
+ | - 更新子模块: | ||
+ | |||
+ | 注: | ||
+ | * git submodule init git submodule update 两条指令可以合并为: | ||
+ | * git submodule init 的作用就是将子模块的信息写到 .git/ | ||
+ | * git submodule update 的作用是将子模块的空目录 clone 成对应版本的 git 仓库。 | ||
+ | * 当目录为空时,git submodule 显示的子模块不带版本信息。 | ||
+ | |||
+ | |||
+ | |||
+ | ==== - 主仓库添加子模块(已存在的git仓库) ==== | ||
+ | git sumodule add < | ||
+ | git add name | ||
+ | git commit -m "add submodule" | ||
+ | git push origin master | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== - 主仓库添加子模块(将已有的目录设为子模块)==== | ||
+ | |||
+ | * 为sub-module创建一个单独的git仓库 | ||
+ | |||
+ | git checkout v2.0 | ||
+ | cd sub-module | ||
+ | git init | ||
+ | git add sub.txt | ||
+ | git commit -m " | ||
+ | git remote add origin https:// | ||
+ | git push -u origin master | ||
+ | |||
+ | * 从 main-module.git中删除 sub-module文件夹 | ||
+ | |||
+ | cd .. # main-module/ | ||
+ | git rm -r sub-module | ||
+ | git commit -m " | ||
+ | |||
+ | * 将 sub-module.git注册为main-module.git的子模块 | ||
+ | |||
+ | main-module/ | ||
+ | git submodule add https:// | ||
+ | git commit -m "add submodule version 1.0" | ||
+ | |||
+ | ==== - 删除子模块 ==== | ||
+ | * 逆初始化模块,其中{MOD_NAME}为模块目录,执行后可发现模块目录被清空 | ||
+ | |||
+ | git submodule deinit < | ||
+ | |||
+ | * 删除.gitmodules中记录的模块信息(--cached选项清除.git/ | ||
+ | |||
+ | git rm --cached < | ||
+ | |||
+ | * 提交更改到代码库,可观察到' | ||
+ | |||
+ | git commit -am " | ||
+ | |||
+ | ==== - 向下同步子模块仓库 ==== | ||
+ | |||
+ | git submodule init | ||
+ | git submodule update | ||
+ | |||
+ | 或 | ||
+ | git submodule update --init --recursive | ||
+ | |||
+ | |||
+ | |||