Git的使用|青训营笔记
这是我参与「第四届青训营」笔记创作活动的第2篇笔记
0 Git研究方向
代码托管
代码智能:搜索、导航
代码分析:优化
持续集成:
Cloud IDE:开箱即用的云端开发环境
1 Git是什么
版本控制
dsitributed version control system
本地版本控制 RCS 无法团队协作
集中式版本控制 SVN 提供一个远端服务来保存文件,本地无法保存
分布式版本控制 Git 每个仓库都能记录版本历史,每次提交都记录完整文件,而不是记录增量
Git发展历史
GitHub
Gitlab 开源,可定制,企业常用
2 Git基本使用
配置
git init
不同级别的Git配置
--global
--system
--local
常见Git配置
git config —global user.name ""
git config —global user.mail 1325745618@qq.com
Instead of 配置https代替git
cin配置别名
git remote
2.2.2 ssh remote
免密配置
ssh可以通过公私钥的机制,将生成公钥放在服务端,从而实现免密访问
ssh-keygen -t ed25519 -C "1325745618@qq.com"
2.3 Git Add
git add
git status
tree .git
git cat-file -p 900834aef739c59564960277b5e386b01718986a
2.4 Git Commit
git commit -m "add readme"
tree .git
2.5 Object
通过commit寻找tree信息
通过tree寻找目录树的信息
从tree中获得blob的ID,通过blobID获取文件内容
2.6 Refs
refs的内容是对应的commit ID,相当于指针,指向不同的commit版本
branch 可以不断添加commit进行迭代
git checkout -b test 新分支test
tag 稳定版本,指向的commit ID一般不会变更
git tag v0.0.1
2.7 Annotation Tag
附注标签,可为tag提供其他内容
git tag -a v0.0.2 -m "add feature 1"
附带tagger、标签内容
2.8 追溯历史版本
获取当前代码版本 ref指向的commit
获取历史版本代码
2.9修改历史版本
git commit --amend修改最近的一次commit信息,修改之后commit id会变
rebase
filter --branch
2.10 object
git fsck --lost-found
2.11 git gc
2.12完整的git视图
2.13 git clone
提交代码
远端同步
3 git研发流程
\