git简介
git简介
- 主要介绍git的起源,解决了什么,实现了什么
1、什么是版本控制系统
-
版本控制系统是一种记录一个或者若干个文件内容变化,以便将来查阅特定的版本修订情况的系统
-
用来管理文件,修改历史的工具,可以记录谁,在什么时候,改了什么内容,还能随时回退,对比,合并
-
核心作用
-
记录文件的每一次改动,形成版本历史
-
不小心改错了,可以回滚到之前的版本
-
多人同时写代码/文档,不会互相覆盖
-
能看到谁改了哪一行,方便协作和排查问题
-
版本控制系统主要有2类
-
集中式版本控制系统 svn
-
分布式版本控制系统 git
1、集中式版本控制系统
- 所有版本数据只存在一台中央服务器上,每个人本地只有当前工作的文件,没有完整的历史

-
工作流程
-
从中央服务器检出最新代码,而不是完整的,只是当前最新的代码
-
本地修改
-
提交到中央服务器
-
其他人更新拿到你的修改
-
-
优点
-
结构简单,容易理解
-
权限管理方便,服务统一控制
-
存储占用小,本地只有当前版本
-
-
缺点
-
必须联网才能提交,查看历史
-
服务器一但宕机或者损坏,整个版本库可能丢失
-
多人同时修改容易冲突,分支的管理弱
-
速度非常的慢,依赖这个网络
-
2、分布式版本控制系统
-
每个人本地都有完整的版本库,包括所有历史,分支,提交记录
-
中央服务器只作为共享仓库,不是唯一的依赖

-
工作流程
-
克隆clone整个仓库到本地
-
本地任意提交,创建分支,回滚,查看历史
-
推送(push)远程共享服务器
-
其他人拉取(pull)更新
-
-
git特性
-
Git只关心文件数据的整体是否发生了变化,而多数的其他系统则只关心文件内容的具体差异,它们在每个版本中记录着各个文件的具体差异
-
在Git中的绝大多数操作都只需要访问本地文件和资源,不需要联网。这是因为Git在本地磁盘上就保留着所有当前项目的历史更新,所以处理起来速度飞快,这是使用空间换时间的处理方式
-
使用Git,即使在没有网络或VPN的情况下,你同样可以非常愉快的频繁提交更新,等到有了网络的时候再提交到远程的仓库
-
-
对于任何一个文件,在git内部只有三种状态
-
已提交(committed):表示数据文件已经顺利提交到Git数据库中。
-
已修改(modified):表示数据文件已经被修改,但未被保存到Git数据库中。
-
已暂存(staged):表示数据文件已经被修改,并会在下次提交时提交到Git数据库中。
-
-
优点
-
不联网也能工作,本地提交,分支,回滚都可以
-
服务器坏了不影响本地,安全性更好
-
分支极其强大,适合多人协作、并行开发
-
速度极快,大部分操作在本地完成
-
适合开源、大规模团队
-
3、git和svn区别
- 集中式(SVN):只有服务器有完整历史,本地只是一份拷贝。
- 分布式(Git):每个人都有完整仓库,服务器只是用来同步。
2、git详解
1、git工作区域
-
工作区(Working Directory)
-
能直接看到,编辑的文件
-
存放代码的实际文件
-
增删改代码都发生在这里
-
-
暂存区(Staging Area / Index)
-
临时存放即将提交的改动
-
git add 就是将文件存放这里
-
-
本地仓库(Local Repository)
-
git 真正保存版本历史的地方
-
存放所有提交记录,分支,版本
-
git commit 就是将暂存区内容提交到这里
-
-
git流程
-
在工作区编写好文件
-
git add 添加到暂存区
-
git commit 将暂存区的内容提交到仓库里面去
-


浙公网安备 33010602011771号