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

103 阅读3分钟

这是我在第五届字节后端青训营的第四篇笔记,笔记主体为:Git的正确使用姿势与最佳实践,字节青训营是一个很成熟的平台,学习内容很丰富。

为什么要学习Git

  • 业界绝大多数公司都是基于Git 进行代码管理
  • 目前绝大多数的开源项目都是基于Git 维护的,

什么是Git

Git : Git是一个免费的开源分布式版本控制系统,旨在以快速和高效的方式处理从小型到超大型项目的所有内容。

版本控制:一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统,有以下三种:

  1. 本地版本控制(RCS)
    • 基本原理:本地保存所有变更的补丁集,可以理解成就是所有的 Diff,通过这些补丁,我们可以计算出每个版本的实际的文件内容
    • 缺点:RCS 这种本地版本控制存在最致命的缺陷就是只能在本地使用,无法进行团队协作,因此使用的场景非常有限,因此衍生出了集中式版本控制
  2. 集中式版本控制(SVN)
    • 基本原理:提供一个远端服务来保存文件,所有用户的提交都提交到该服务器中;增量保存每次提交的 Diff,如果提交的增量中和远端现存的文件存在冲突,则需要本地提前解决冲突。
    • 缺点:本地不存储版本管理的概念,所有提交都只能联上服务器后才可以提交;分支上的支持不够好,对于大型项目团队合作比较困难;用户本地不保存所有版本的代码,如果服务端故障容易导致历史版本的丢失。
  3. 分布式版本控制(Git)
    • 基本原理:提供一个远端服务来保存文件,所有用户的提交都提交到该服务器中;增量保存每次提交的 Diff,如果提交的增量中和远端现存的文件存在冲突,则需要本地提前解决冲突
    • 缺点:学习成本高、大文件支持差。

Git的基本使用方式

作用命令
配置git config
git remote
提交代码git add
git commit
远端同步-拉取代码clone
pull
fetch
远端同步-推送代码push

Git目录

作用命令
项目初始化mkdir study
cd study
git init
其他参数--initial -branch
--bare
--template

课程后续还提供了很多对命令的详细的讲解,查阅文档即可。

Git研发流程

工作流

  1. 集中式工作流(Gerrit/SVN)

    • 工作方式:只依托于Master分支进行研发活动

    1. 获取远端master代码
    2. 直接在 master 分支完成修改
    3. 提交前拉取最新的master代码和本地代码进行合并(使用rebase),如果有冲突需要解决冲突
    4. 提交本地代码到 master
  2. 分支式工作流(Github/Gitlab),包括:Git Flow,Github Flow ,Gitlab Flow

收获与思考

首次系统的了解了以下Git这个工具,对今后进行开源项目应该很有帮助。