Git版本控制工具——背景介绍(一)

一.Git是什么

版本控制工具!Git是目前世界上最先进的分布式版本控制系统(没有之一)。

这个软件用起来就应该像这个样子,能记录每次文件的改动
在这里插入图片描述
这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。

二、Git发展史

cvs --svn

在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系系统呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对 CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和 Linux的开源精神不符。

Linus花了两周时间用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!Git迅速成为最流⾏的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移到GitHub,包括jQuery,PHP,Ruby等等。

三、Git运行方式

1、集中式VS分布式

Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制

1)集中式版本控制系统

版本库是集中存放在中央服务器的,你干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。集中式版本控制系统最大的弊端就是必须联网才能工作,如果在局域网内还好,速度够快,可如果在互联网上,遇到网速慢的话,可能提交个10M的文件就需要5分钟,这还不得把人给憋死啊。

2)分布式版本控制系统

根本没有“中央服务器”,每个⼈的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个认电脑上都有个完整的版本库,那多个人如何协作呢?比如说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。和集中式版本控制系统相比,分布式版本控制系统的安全性要好很多,因为每个电脑里都有完整的版本库,某个人的电脑坏掉了不要紧,而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了

git运行方式如图
在这里插入图片描述

2、工作区和暂存区

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区和工作区的概念;
工作区(Working Directory):就是你在电脑⾥能看到的目录,
版本库(Repository):工作区有个隐藏目录“.git”,这个不算工作区,而是Git的版本库,Git的版本库存了很多东西,其中最重要的就是称为stage或者叫index的暂存区,还有Git为我们主动创建的第一个分支master,以及指向master的一个指针叫HEAD。
我们把文件往Git版本库中添加的时候,是分两步执行的:

第一步是用“git add”把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用“git commit”提交更改,实际上就是把暂存区的所有内容提交到当前分支。因为我们创建Git版本库时,Git主动为我们创建了唯一一个master分支,所以,现在commit就是往master分支上提交更改。你可以简单理解为,需要提交的⽂件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

四、常用Git服务器

1)github——全球最大的开源网站
2)码云——免费的,国内的
3)coding——国内的

五、安装Git

1、window中安装
下载安装客户端,安装成功检查是否安装是否成功

方法一:桌面右击鼠标出现git bash here
在界面中输入git --version显示版本

方法二:运行cmd中输入git --version显示版本

2、Linux系统安装Git
方法一:yum安装

yum search Git===查看是否有git如果有就下载

Git --version====查版本

下最新版本官网:git-scm.com

注意:默认yum install git 安装的为git 1.7.1版本
coding上面让要使用的git版本为1.8.0以上,而且这个版本clone的时候有错,所以需要手动安装git

方式二:手动安装git
1、安装git依赖包
	yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
2、删除已有的git
	yum remove git
3、下载git源码
	wget https://www.kernel.org/pub/software/scm/git/git-2.8.3.tar.gz 
	tar -zxvf git-2.8.3.tar.gz
	cd git-2.8.3
	./configure prefix=/usr/local/git/
	make && make install
4、将git指令添加到bash中,添加到环境变量中
	vi /etc/bashrc
	在最后一行介入
	export PATH=$PATH:/usr/local/git/bin
	source /etc/bashrc  即可
	git --version   git已经安装好,可以查看git版本

六、Git操作(以Github网站为例)

1.注册并登录Github网站

常规注册,注意一点需要邮箱认证,否则不能创建项目

2.Github上创建仓库

新建一个仓库(Repositories),填写项目名和项目说明,创建成功会生成一个网址

3.获取项目—从服务器(云端)获取项目到本地

本地找一个文件夹存放文件,然后右键打开git执行下面代码,可将自己或者别人项目拿到本地

git clone https地址====将仓库克隆到本地

注意:【创建ssh密钥】也可以在之前创建

创建的目的是为了保证安全性,只有具有密钥的管理员才可上传,其他人只可以下载

git中输入指令可以生成密钥===ssh-keygen,生成私钥id_rsa和公钥id_rsa.pub

将公钥粘贴到网站中的
在这里插入图片描述
在这里插入图片描述

4.下拉项目更新本地

在本地看到服务器最新的代码(更新修改情况)

git pull    ====  从服务器更新代码
5.本地推送到服务器

先在本地实施版本控制,即创建版本库,又叫仓库(repository)

(1)创建仓库(版本库),选择一个合适的位置创建一个空目录
mkdir +文件名     #文件名和路用英文,文件编辑可用notepad++
cd 文件名
(2)进入目标文件夹(想推送的文件所在文件夹)
git init    初始化Git仓库,将这个目录可以变为仓库
git add +文件名    添加指定文件
(或者git add .     添加所有文件)

git status  查看当前状态
(3)提交文件
git  commit  -m  "我写的内容原因"   
(注意:提交原因必须写,否则不能推送)
(4)推送文件到服务器
git push 
或者git push origin(服务器项目默认名字) master

参考:

Git版本控制(完美整理版)

分布式版本控制工具——Git

猜你喜欢

转载自blog.csdn.net/qq_42886163/article/details/102596032