Git版本控制系统(一)

Git是目前世界上最先进的分布式版本控制系统

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就会有些不适用

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

一、部署git版本库:

1、在windows上安装Git:


2、安装完成后执行如下两个命令配置用户名邮箱,因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,如下:

git config  –-global  user.name "gongguan
git config  –-global  user.email "12345@qq.com


二、创建版本库:

什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。

创建版本库的命令如下:

git  init   gongguan #方法一,表示创建一个版本库目录gongguan
cd   gongguan    git init #方法二,先进入目录gongguan,然后执行命令git init将当前文件夹变成版本库


创建成功后gongguan文件夹下多了一个隐藏目录.git , 这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把git仓库给破坏了

注意:所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了什么,版本控制也不知道。

三、git使用演示:

1、在版本库gongguan目录下新建文件gong.txt并写入内容11111111, 可以直接使用命令行的方式来创建文件,命令和linux命令相同,也支持vim命令,如图:


2、使用命令git add gong.txt 添加到暂存区里,然后使用git commit 提交到仓库,提交完成后可以使用git status查看是否还有文件未提交,如下:

如果想知道修改了哪些内容可以使用命令:

git  diff  gong.txt


再次提交使用如下命令:

git   commit  -m "gongtwo"   # -m后面的内容可自定义

git还有一个图形界面可以看到提交后的情况,在命令行输入gitk命令即可看到,还可以看到修改后的内容(点击第二次提交的可看到下方的新增加的内容)

git log 可以看到最近的情况 由近及远:


四、Git如何进行版本回退 ?

通过版本号的方式进行回退:(推荐) ,还有其他方法,暂时不考虑。

通过命令 git reflog 查看版本号 ,从下图可以看出,当前的版本在gongfirst位置,可以看下前面显示的master标识即可,现在要恢复回gongtwo版本,使用命令git reset –hard bba6052,bba6052为gongtwo的标识符,如图:

如果想恢复到gongfitst版本 ,同样可以通过版本号,如图:


五、理解工作区与暂存区的区别?

工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。

版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

使用Git提交文件到版本库有两步:

  • 第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
  • 第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。

六、Git多个文件提交?

在gong.txt中再添加一段内容,并新建一个文件,如图:

将两个文件都添加到暂存区中,然后使用git status查看状态:

使用 git commit一次性提交上去


七、Git撤销修改以及删除文件 ?

如果现在在文件gong.txt中增加一行内容abcdefg,如图:

在我未提交之前,我发现添加abcdefg内容有误,所以我得马上恢复以前的版本,现在我可以有如下几种方法可以做修改:

  • 第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。
  • 第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset –hard 版本号

但是现在我不想使用上面的2种方法,我想直接使用撤销命令该如何操作呢?首先在做撤销之前,我们可以先用 git status 查看下当前的状态。如下所示:

可以发现,Git会告诉你,git checkout -- file 可以丢弃工作区的修改

执行命令如下:

git  checkout  --  gong.txt   #注意之间有空格

命令 git checkout -- gong.txt 意思就是,把gong.txt文件在工作区做的修改全部撤销,这里有2种情况,如下:

  • readme.txt自动修改后,还没有放到暂存区,使用 撤销修改后就回到和版本库一模一样的状态。
  • 另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。

对于第二种情况,假如现在我对gong.txt添加一行 内容为9999999999 git添加到暂存区后再添加一段内容0000000000,如下:

使用git checkout -- gong.txt 撤回, 如图:

现在版本库中有一个文件guan.txt 现在要删除它可以执行rm guan.txt 或者手动在目录下删除,删除之后如果还没有执行commit命令那么也可以通过git checkout -- guan.txt 来回复,如下:


至此本地搭建Git版本控制系统完成!!

更多内容请访问链接地址:https://www.ywdevops.cn/index.php/2020/03/11/git/

举报
评论 0