Git的正确使用姿势与最佳实践 | 青训营笔记

184 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第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的分布式版本控制

基本原理:

  1. 每个库都存有完整的提交历史,可以直接在本地进行代码提交
  2. 每次提交记录的都是完整的文件快照,而不是记录增量
  3. 通过 Push 等操作来完成和远端代码的同步 优点:
  4. 分布式开发,每个库都是完整的提交历史,支持本地提交,强调个体
  5. 分支管理功能强大,方便团队合作,多人协同开发
  6. 校验和机制保证完整性,一般只添加数据,很少执行删除操作,不容易导致代码丢失

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 操作。
可能存在冲突,需要解决冲突。