提到了git,那么我们首先来了解一下什么是git


  1. 什么是git?

许多人都知道SVN是一个版本管理工具,Git也是一个版本管理工具,是目前世界上最先进的分布式版本管理工具,没有之一!对于版本工具而言,其实就是相当于我们在软件开发中对立的一个操作记录,项目中不同的开发进度分别代表不同的点,有效的记录分配各个项目模块进行管理,并且当出现错误时可以及时的进行回退,有点像数据库的事务。。。


2.集合式vs分布式:

    集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

    集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。

    那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

    和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。


3.git的基本使用:

    首先大多数了解git其实就是github这个网站,然后来进行git的学习。github相当于git的一个远程仓库,这个我们后面提及,我们先来进行git的基本学习.

首先既然是版本管理工具,那么我们肯定要有一个版本库来进行项目的管理咯。

  1. 版本库的创建:

    每一个项目肯定要独立分配一个文件夹,然后在当前项目的文件夹下我们就建立一个仓库呗。

    通过使用:

git init

  这个简单的命令就可以建立一个仓库了,然后git如何证明当前目录是一个仓库呢?当然是放一个版本信息文件咯,.git就是这个文件,大家可以试一试

git的基本使用_第1张图片


2.将文件添加到版本库中。我们创建一个文件,READBE.txt(我.打错成,了,不过不影响).

然后在文件里面随便写一点内容。记住,这个创建的文件一定要在我们当前的仓库目录下:

然后通过

git add <文件名>
git commit -m "注释信息"

其中分两步的原因你可以吧不同的文件add 到暂存区中,然后在通过commit提交到当前分支,这些概念我们后面说,现在大家就理解这样操作就可以把文件提交到仓库中了!

git的基本使用_第2张图片

上面出现了

git config --globa user.name "Your Name"
git config --globa user.email "[email protected]"

这个就是我们安装git完成后设置自己的账户信息了.


git status命令:
    这个命令是查看我们当前的仓库文件是否已被修改的,如果修改了就会出现修改信息。

git的基本使用_第3张图片

git diff命令:

顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以从上面的命令输出看到,我们在第一行添加了一个“distributed”单词。

知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了,也就是显示我们对仓库的操作。

git的基本使用_第4张图片

再次commit之后就可以看到没有发生改变了


wKiom1dvx-XCMHsIAAAfkT08fE0662.png

2.如何实现版本的回退呢?

我们对当前的仓库进行多次修改和add,commit之后,然后我们通过:

git log

这个命令是可以查看我们操作版本库的各项信息。

git的基本使用_第5张图片

其实就是每当我们进行一次git commit -m ""的操作时就会记录到这个版本库信息中,我们进行一个版本回溯就是根据commit进行的。


也可以利用

git log --pretty=oneline

 进行简单版本信息查看

wKioL1dvx-WDKgYOAAAshFBY0wo306.png


如何进行版本回溯呢?

其实在上面的log命令中就有一个commit的版本信息,这个是git他内部随机生成的一个16进制的版本信号嘛,我们可以使用:

git reset --hard HEAD^

进行版本回退。一个^代表一次2个代表2次。HEAD~100代表100次。



然后我们在进行查看就发现回到了之前的版本:


如果往前呢?其实只要利用commit版本号就好,如果我们回溯版本之前没有进行关闭终端。还能够查询到回溯之前版本的commit码,就可以拷贝或者写一点前面的

通过

git reset --hard 

进行回到我们之前的版本了

git的基本使用_第6张图片

wKioL1dvx-iTAnsOAAArevz0eTA932.png