Git的使用|青训营笔记

170 阅读2分钟

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研发流程

\