Git-程序员的必备工具 | 青训营笔记

116 阅读1分钟

Q1:Git 是什么?
A1:Git is a free and open source distributed version control system designed to handle everything form small to very large projects with speed and efficiency.
Q2:为什么要学习 Git?
A2:协同工作(业界绝大多数公司都是基于 Git 进行代码托管,因此 Git 是一个程序员的必备技能),开源社区(目前绝大多数的开源项目都是基于 Git 维护的,参与这些项目的开发都需要使用 Git)。

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

版本控制可以让我们更好的关注变更,了解每个版本的改动是什么,方便对改动的代码进行检查,以防事故的发生;也能够随时切换到不同的版本,回滚误删误改的问题代码。

graph TD
三种类型的版本控制 --> 本地版本控制
三种类型的版本控制 --> 集中式版本控制
三种类型的版本控制 --> 分布式版本控制
本地版本控制 --> 代表性工具:RCS--> 解决的问题:本地代码的版本控制-->缺点:RCS这种本地版本控制存在最致命的缺陷就是只能在本地使用,无法进行团队合作,因此使用的场景非常有限,因此衍生出了集中式版本控制.
集中式版本控制-->代表性工具:SVN--> 解决的问题:提供一个远端服务器来维护代码版本,本地不保存代码版本,解决多人协作问题-->缺点:本地不储存版本管理的概念,所有提交都只能联上服务器后才可以提交;分支的支持不够好,对于大型项目团队合作比较困难;用户本地不保存所有版本的代码,如果服务端故障容易导致历史版本的丢失.
分布式版本控制-->代表性工具:Git--> 解决的问题:每个仓库都能记录版本历史.解决只有一个服务器保存版本的问题-->缺点:相对于SVN更复杂,学习成本更高;对于大文件的支持不是特别好(git-lfs 工具可以弥补这个功能)

目前使用率最高的三个代码托管平台:

Github:全球最大的代码托管平台平台,大部分开源项目都放在这个平台上。

Gitlab:全球最大的开源托管平台,项目的所有代码都是开源的,便于在自己的服务器上完成 Gitlab 的搭建。

Gerrit:由 Google 开发的一个代码托管平台,Android 这个开源项目就托管在 Gerirt 之上。