暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Git版本控制系统(一)

运维DevOps 2022-03-19
388
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/




            文章转载自运维DevOps,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论