Git版本控制简易入门


本记录来自对    Itercast(该网络教学网站已关闭)中的git版本控制系列教程 的学习

 

第一节   版本控制系统介绍

版本控制系统(VCS,version controlSystem)

 

可以实现的功能

A.  记录文件的所有历史变化

B.  随时恢复到任何一个历史状态

C.  多人协作开发或修改

D. 错误恢复

E.多功能并行开发

 

版本控制分类

A.  本地版本控制系统

B.  集中化版本控制系统

C.  分布式版本控制系统

 

版本控制系统的基本概念

1.      repository             存放所有文件及其历史信息(也叫仓库)

2.      checkout        取出或切换到指定版本的文件

3.      version           记录标识一个版本(编号或其他代码)

4.      tag                 记录标识一个主要版本(1.0  2.0 3.0)

 

本地版本控制系统(LVCS)

仅运行在本地,可以不使用网络

代表版本类型èRCS(Revision ControlSystem)

优点:简单、很多系统中都内置、适合管理文本文件(如配置文件、文章、信件、简单文档等)

缺点:只合适管理少量文件、不支持基于项目管理、支持文件类型单一、不支持网络、无法实现多人协作。

 

集中式版本控制系统(CVCS)

代表版本èCVS(concurrent versionSystem)  subversion

优点:适合多人团队协作开发、代码集中管理

缺点:单点故障、必须联网工作、无法实现单机本地工作

 

分布式版本控制系统(DVCS)

代表版本ègit  mercurial(水银)

优点:适合多人团队协作开发、代码集中管理、可以离线工作、每个计算机都是一个完整的仓库

 

 

第二节  Git版本控制系统

开源的分布式版本控制系统,最初是取代bitkeeper,linus Torvalds开发,用于Linux内核代码管理系统

优点:速度快、设计简单(配置简单)、对非线性开发模式支持好(多分支开发)、完全分布式有能力高效管理类似Linux内核一样的超大规模项目

 

 

Git原理—快照

使用快照(没有变化的版本库链接到原始版本,变化的保存下来),而不是保存。

每一种版本控制系统都用一种办法追踪不同阶段文件的变化。

 

其他版本控制系统的工作原理,使用补丁(保存)

 

Git版本控制工作原理

 

 

Git原理—文件鉴别和操作

1.      几乎所有操作都是在本地(分布式是指每个电脑都有一个完整的版本库)

2.      通过校验和算法识别文件变化

a)       通过sha-1算法对文件内容或目录结构进行哈希,得出的假烟值作为变化的指纹

3.      多数操作均为添加数据(删除的文件可以通过回溯的原始版本找回)

 

Git原理—文件状态及工作区域

Git repository            最终确定的文件保存到仓库,成为新的版本,对他人可见

Staging area(index)           暂存区域,暂存已经修改的文件

Working Directory           编辑、修改文件

 

 

 

第三节   Git安装

官方网站git-scm.com , 网站提供了多种系统多种方式的下载

yum系列

centos 环境下使用命令#yum install –y git

apt-get系列

Ubuntu环境下使用命令#apt-get install git

Windows系列

Windows环境下载exe安装包,使用默认安装设置。生成git bash,通过git bash可以直接使用类似Linux的命令,默认的使用路径是家目录。

创建一个文件夹,打开文件夹,右击,creat gitrepository here,该文件夹即是本地的仓库。从git bash 中切换到该目录可以看到其识别为仓库的主分支。

Mac OS X 系列

在mac os x 中,安装xcode的时候会默认安装git,所以先在terminal中确认是否安装。进入AppStore,搜索Xcode,点击details,点击install,大小通常为1.7GB左右,需要等待一段时间。

打开Xcode, 点击菜单项,进入download,有command linetools一项,传统使用的gcc、git等包含在该项中,默认是没有安装,需手动安装。

 

第四节   Git初始化及仓库创建

Git基础设置

Git安装完成之后,需要进行一些基本信息设置

1.     设置用户名

# git config –global user.name “YourName”

2.     设置用户邮箱

# git config –global user.email “yourmail@Mail.com”

3.     查看设置

# git config --list

用户名和邮箱是提交代码是的标识,可以设置全局账户,也可以针对某个仓库进行设置

 

 

Git帮助命令

1、获取全局帮助

# git help

2、获取特定命令的帮助

# git help 特定命令名

 

 

初始化一个新的Git仓库

1、  创建一个文件夹,可以直接使用已有的文件夹

# mkdir book

2、  在文件夹内初始化git,创建git仓库

# cd book

# git init   在book文件夹中创建.git文件夹,所有的仓库数据文件都是保存在.git文件夹中,所说的git仓库即为.git文件夹。

3、   

 

 

向Git仓库中添加文件

1、  创建相应的文件,如readme、book.cpp

# touch readme book.cpp

2、  查看当前工作目录下的所有文件的状态

# git status

3、  将相应的文件添加到暂存区域中,可以同时添加多个文件

# git add readme

4、  添加到仓库中

# git commit -m “initrepo”   -m参数后字符串用于注释当前这次提交做了哪些工作

5、  查看git提交历史

# git log

Commit后的字符串是SHA码,其后为作者,提交日期,注释信息

 

直接提交到仓库

设置默认提交,

1、  提交文件

# git commit –a –m“modify book.cpp”

跳过暂存区域,直接提交到仓库中,这里主要用于提交修改的文件,文件必须使用git add 添加到暂存区域中

 

删除文件

1、  删除文件

# rm README

2、  从git中删除文件

# git rm README

这里虽然删除了README文件,但是在git的历史版本库中依然存在,可以通过回溯到历史版本库找回

3、  提交操作

# git commit –m “deleteREADME”

4、  通过日志文件查看历史操作

# git log

重命名文件

# git mv book.cppbookSource.cpp

# git commit –m “renamebook.cpp filename to bookSource.cpp”

这里的git mv命令相当于在本地重命名文件,删除仓库的文件,将重命名的文件添加到暂存区域,即:

# mv book.cppbookSource.cpp

# git rm book.cpp

# git addbookSource.cpp

 

 

附:gui使用

Git gui,打开仓库所在目录会自动识别当前的仓库,

查看master分支历史,可以看到所有的历史版本及修改日志。

 

第五节   Git远程仓库

之前提到的操作都是本地的操作,并没有同步到git服务器上,使得其他开发者无法及时查看到仓库的动态。

远程仓库中只保存的.git文件夹

 

 

Git支持的访问协议

1、  Local 本地型

2、  SSH

3、  Git

4、  HTTP/HTTPS,只能下载数据,不能提交数据

 

常用git远程仓库实现

1、  使用现有的git网络仓库服务

a)       Github。https://github.com    开源仓库是免费的,私有仓库收费

b)       BitBucket。https://bitbucket.org

2、  搭建自己的git仓库服务器

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值