这是我参与「第三届青训营 -后端场」笔记创作活动的第5篇笔记
1. Git是什么
Git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
版本控制是什么?
一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
为什么需要版本控制?
更好的关注变更,了解到每个版本的改动是什么,方便对改动的代码进行检查,预防事故发生;也能够随时切换到不同的版本,回滚误删误改的问题代码。
Git的分布式版本控制
基本原理:
- 每个库都存有完整的提交历史,可以直接在本地进行代码提交
- 每次提交记录的都是完整的文件快照,而不是记录增量
- 通过 Push 等操作来完成和远端代码的同步 优点:
- 分布式开发,每个库都是完整的提交历史,支持本地提交,强调个体
- 分支管理功能强大,方便团队合作,多人协同开发
- 校验和机制保证完整性,一般只添加数据,很少执行删除操作,不容易导致代码丢失
2. Git的基本使用方式
2.1 常见Git配置
用户名配置
git config--global user.name "liaoxingju"
git config--global user.email liaoxingju@bytedance.com
2.2 Git Remote
查看Remote
git remote -v
2.3 Git Add
将代码从工作区提交到暂存区
2.4 Git Commit
将代码从工作区提交到暂存区
2.5 Git存储
Objects: commit/tree/blob在Git里面都统一称为Object,除此之外还有个tag的object
- Blob 存储文件内容信息
- Tree 存储目录树信息
- Commit 存储提交信息
- Tag 存储附注标签信息 Ref
- Tag 仓库标签
- Branch 仓库分支
2.6 Git Clone & Pull & Fetch
Clone: 拉取完整的仓库到本地目录,可以指定分支,深度。
Fetch: 将远端某些分支最新代码拉取到本地,不会执行merge 操作,会修改 refs/remote 内的分支信息,如果需要和本地代码合并需要手动操作。
Pull: 拉取远端某分支,并和本地代码进行合并,操作等同于 git fetch + git merge,也可以通过 git pull --rebase 完成 git fetch + git rebase 操作。
可能存在冲突,需要解决冲突。