1.主项目和子项目之间的关系
子模块 submodule
子树 subtree
2.创建sub版本库
mkdir -p sub/src
echo 'sub' > sub/src/sub.txt
cd sub
git init
git add --all
git commit -m 'init sub'
git branch v1.0
3.创建嵌入子模块的主版本库
mkdir -p submodule/main/src
echo 'main submodule' > submodule/main/src/main.txt
cd submodule/main
git init
4.链接目录 git submodule add /d/git/projects/sub/ sub
5.注册子模块 git submodule init
6.主版本库提交子模块
cd sub
git checkout v1.0
cd ..
git add --all
git commit -m "Submodule added"
7.查看主版本库提交的对象树(commit类型的sub目录)
git cat-file -p 8c7ca65
git cat-file -p 54e6c2ba774f4e9694bae39295e784a9b4c949b6
8.克隆一个带子模块的项目
mkdir -p submodule/clone
cd submodule/clone
git clone /d/git/projects/submodule/main
git submodule init
git submodule update
9.查看子模块被引用提交的散列值 git submodule status
10.更新sub版本库版本
echo 'v2.0' >> src/sub.txt
git add --all
git commit -m "update v2.0"
git branch v2.0
11.使用子模块中的新版本
cd sub
git fetch
git checkout v2.0
cd ..
git add --all
git commit -m "New version of the submodule"
12.主版本库与模块版本库中的文件都被修改
cd sub
echo 'foo' > foo.txt
git add foo.txt
git commit -m 'Changed submodule'
git push
cd ..
echo 'bar' > bar.txt
git add --all
git commit -m "New version of submodule"
13.更新子模块
git submodule init(修改不被接受时git submodule sync)
git submodule update
14.创建嵌入子树的主版本库
mkdir base
echo 'base' > base/base.txt
cd base
git init
git add --all
git commit -m 'base main'
git clone /d/git/projects/subtree/base main
15.嵌入一个子树
cd main
git subtree add --prefix=sub /d/git/projects/sub master
16.嵌入一个合并提交子树
git subtree add --squash --prefix=sub /d/git/projects/sub master
git log --graph --oneline
17.获取子树的新版本
git subtree pull --prefix=sub /d/git/projects/sub v3.0
18.获取没有中间提交的指定提交
git subtree pull --squash --prefix=sub /d/git/projects/sub v3.0
19.分离模块目录中的修改
git subtree split --prefix sub --branch sub/master
git subtree split --rejoin --prefix sub --branch sub/master
20.合并模块版本库中的修改
git checkout sub/master
git fetch /d/git/projects/sub master
git merge FETCH_HEAD
21.将修改传送到模块版本库中并删除临时分支
git push /d/git/projects/sub/ HEAD:master
git checkout master
git branch -d sub/master
相关文章
- 02-24前端第27次总结-节点、快捷尺寸、获取样式的方法、键盘事件、面向对象、原型、原型链、安全类、内置的构造函、继承、BOM、Git、touch事件、动画、zepto、touch
- 02-24Git学习指南第11章
- 02-24第2章 Git安装与设置
- 02-24CCNA学习指南(640-802) (第7版) 中文版 高清PDF扫描版[86MB]下载
- 02-24《实施Cisco统一通信VoIP和QoS(CVOICE)学习指南(第4版)》一1.6 习题
- 02-24springmvc学习指南 之---第31篇 使用墨客进行测试报错
- 02-24《CCNA学习指南:Cisco网络设备互连(ICND1)(第4版)》——2.6节TCP/IP协议栈
- 02-24springmvc学习指南 之---第30篇 异常的全局处理
- 02-24Git以及Github学习指南
- 02-24《CCNA学习指南:Cisco网络设备互连(ICND1)(第4版)》——2.2节理解主机到主机的通信模型