Git和github的使用

一、版本控制软件

1.个人理解版本控制软件:

比如一个项目要上线,肯定经过不断测试和修改,这样就会有很多版本,每次呢,就需要把之前的代码复制,再给新版本重新赋值,就会产生操作麻烦、命名不规范、文件不小心删除,导致文件丢失、需要手动合并每个人对项目的修改,协作困难等问题,因此版本控制软件产生了,他就是一个用来记录文件变化,可以查看特定版本修改情况的系统,也就是说,以前手工管理文件版本的方式变成了软件管理文件版本的方式,这个负责管理文件版本的软件,叫做版本控制软件。

2.好处:

操作简便:记住几组常用终端命令,就能操控版本控制软件。(用命令控制版本控制软件)

易于对比:根据版本控制软件提供的功能,可以方便的比较文件变化的细节,从而查找出导致问题的原因。

易于回溯:可以将选定的文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。

不易丢失:在版本控制软件中,被用户误删的文件,可以恢复。

协作方便:版本控制软件提供一个分支(fork)功能,可以轻松实现多人协作开发的代码合并操作。也就是这样的流程:一个项目==>fork分支==>贡献自己的代码==>commit提交代码==>发起PR(Pull Request拉取请求,就是代码被拉到别人那去)==>经过审核==>把代码merge(合并分支)到官方仓库。

3.版本控制系统的分类

3.1 本地版本控制系统

特点:使用软件记录文件的不同版本,提高工作效率,降低手动维护版本的出错率;

缺点:单机运行,不支持多人协作开发,版本数据库(比如有一台电脑,一个文件的所有版本是类似于数据库的一个东西来进行存储的)故障后,所有历史更新记录会丢失。

3.2 集中化的版本控制系统

特点:基于服务器客户端的运行模式,服务器保存一个文件的所有更新记录(版本),客户端只保留最新的文件版本

优点:联网运行,支持多人协作开发

缺点:不支持离线提交版本更新;中心服务器崩溃后,所有人无法正常工作;版本数据库故障后,所有历史更新记录会丢失。

典型代表:SVN

3.3 分布式版本控制系统

特点:基于服务器客户端的运行模式,服务器保存一个文件的所有更新记录(版本),客户端保留服务器的完整备份,并不是只保留最新的文件版本

优点:联网运行,支持多人协作开发,客户端断网后支持离线本地提交版本更新,服务器故障或损坏后,可以使用任何一个客户端的备份进行恢复

典型代表:Git

二、为什么使用Git ?git是什么?

1.为了更好的完成项目,不断地修改项目代码,做升级优化、合并;

2.git是开源的分布式版本控制系统,就是管理代码的

3.git的特性:直接记录快照,而不是差异比较;近乎所有的操作都是本地执行

4.什么是差异比较:

SVN的差异比较:传统的版本控制系统(例如SVN)是基于差异的版本控制,他们存储的是一组基本文件和每个文件随时间逐步累积的差异;

比如,有一个项目,里面有A、B、C三个文件,把项目升级到2.0版本,对文件A和文件C进行升级,但是文件B没有动,这个时候并不是将更新过后的文件记录下来而是把文件的变化记录下来,也就是说记录的是文件的变化差异而不是文件,这样做节省了磁盘的空间,但是耗时、效率低,比如想从版本1切换到版本5,就要先走文件A的所有差异,文件B的所有差异,文件C的所有差异,这样才能得到版本5的三个文件对应的内容。

5.git的记录快照:

Git快照是在原有文件版本的基础上重新生成一份文件,类似于备份,为了效率,如果文件没有更改,Git不再重新存储文件,而是只保留一个链接指向之前存储的文件。

比如:还是有一个项目,里面有A、B、C三个文件,把项目升级到2.0版本,对文件A和文件C进行了一个升级,但是文件B没有动,这个时候对于文件B只是保留了一个链接,指向之前存储1.0版本的文件B。对于2.0版本的文件A和文件C直接做了个备份,也就是快照。

缺点:占用磁盘空间较大

优点:版本切换时非常快,因为每个版本都是完整的文件快照,切换版本时直接恢复目标版本的快照即可。

特点:空间换时间。

6.近乎所有的操作都是本地执行:

断网后依旧可以在本地对项目进行版本管理,(就是说没网的时候也可以在自己计算机上对这个项目进行修改升级),联网后,把本地修改的记录同步到云端服务器上即可。(联网的时候,再把修改后的版本上传到云端服务器上)

三、Git的三个区域、三个状态

Git的三个区域

使用Git管理的项目,有三个区域,分别是工作区、暂存区和Git仓库。

比如:考试后,老师批阅学生的卷子

工作区:处理工作的区域(老师正在批阅的一堆试卷的地方)

暂存区:已经完成的工作临时存放的区域,等待被提交(被老师批阅完的试卷,暂时存放的地方)

Git仓库:最终存放的区域(都判完的试卷,最终存放的地方)

Git的三个状态

已修改(modified):表示修改了文件,但是还没将修改的结果放到暂存区

已暂存(staged):当前被修改后的文件,已经放到了暂存区,等待被提交

已提交(committed):Git仓库中保存着特定版本的文件。

四、Git的基本工作流程

Git和github的使用_第1张图片

 五、安装并配置Git

5.1安装

先下载,浏览器访问https://git-scm.com/downloads,根据自己的系统选择下载。

Git和github的使用_第2张图片

看自己电脑多少位的,64还是32,就下对应的版本,双击,然后傻瓜式安装,什么也不用选,什么也不用,就只点击next,最后点击install安装,然后把View Release Notes这个选项取消选择,点击next,安装完成。检验安装是否成功,在空白区域右键,看到下图红圈里的东西,就是安装成功。

Git和github的使用_第3张图片

 5.2配置用户信息

安装完Git后,要做的第一件事就是设置自己的用户名和邮件地址,因为通过Git对项目进行管理的时候,Git需要使用这些信息,来记录是谁对项目进行了操作。

注意:如果使用了--global选项,那么该命令只需要运行一次,在安装完Git后,执行一次,即可永久生效,不用再执行。

开始配置了奥:

在桌面右键,选择Git Bash Here,就打开了终端,先配置用户名,输入如下命令后,按回车

git config --global user.naxixi_hh"

 在配置账号,输入如下命令后,按回车

git config --global user.email "[email protected]"

5.3Git的全局配置文件

上面配置的用户名和邮箱地址,会被写入到C:\Users\用户名文件夹\.gitconfig文件中,这个文件是Git的全局配置文件,配置一次即可永久生效。

可以使用记事本打开此文件,查看自己曾经对Git做了哪些全局性配置。

Windows+E打开全局管理器 找到用户  找到自己设置的用户名文件夹  就能找到.gitconfig文件

5.4使用git命令查看全局配置信息

打开终端(忘了怎么打开的,去看上面),输入如下命令,查看所有的全局配置项

 git config --list --global

输入如下命令,查看指定的全局配置项

git config user.name

git config user.email

5.5使用git命令获取帮助信息

使用git help命令,不用联网就能在浏览器中打开帮助手册,例如

想打开git config 命令的帮助手册

git help config

不想查看完整的手册,可以使用-h选项获得更简明的"help"输出:

想获取git config 命令的快速参考

git  config -h

六、Git基本操作

6.1获取Git仓库的两种方式

第一种:在自己电脑本地要开发一个项目,默认情况下,此项目是没有被git管理的,这时可以通过某种方式将本地的项目转换为Git仓库,从而对本地的项目进行一个版本管理

第二种:从其他服务器上克隆一个已经存在的Git仓库。

6.2 在现有的目录(项目)中初始化仓库

如果有一个尚未进行版本控制的项目目录,想用git管理他,如要执行以下两个命令:

在项目根目录中,通过鼠标右键打开"Git Bash";

执行git init 命令将当前的目录转化为Git仓库。

注意:git init 命令会创建一个名为.git 的隐藏目录(如果看不到.git文件,可以点击上面的查看,有个隐藏项目的选项,把他勾选上就能查看到),这个.git目录就是当前项目的Git仓库,里面包含了初始的必要文件,这些文件是Git仓库的必要组成部分。

你可能感兴趣的:(github,git)