zoukankan      html  css  js  c++  java
  • Git详解使用教程

    一. 什么是Git

    Git(读音为/gɪt/)。是一个开源的 分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
    Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    二.安装Git

    1.由于官网下载速度很慢,我这里直接贴出来百度网盘下载地址,下载后得到需要的Git安装文件。
    在这里插入图片描述
    2.双击安装程序,现在我们对Git还没有深入了解,所以直接一路点击下一步,全部按照默认配置安装。
    3.安装完成后开始菜单中找到Git Bash点开。
    在这里插入图片描述

    三、使用Git — 设置使用者的信息

    4.出现Git Bash窗口即代表我们安装成功了。
    在这里插入图片描述
    5.因为Git是分布式版本控制系统,所以需要绑定一个用户名和邮箱;以后我们每次提交代码都是用自己的用户提交的,这样就达到了在公司中,分辨多个开发人员提交的代码。
    输入运行两条命令设置用户名和邮箱,设置一次就可以了:① git config --global user.name "自定义的用户名", ② git config --global user.email "12345678@qq.com" , 如下:
    在这里插入图片描述
    6.没报错就说明成功了,如果想要查询当前的用户名和邮箱,可以使用git config user.name, git config user.email两条命令。
    在这里插入图片描述
    7.如果想要取消掉当前的用户重新设置新的用户名和邮箱可以使用git config --global --unset user.name "想要取消的用户名"git config --global --unset user.email "想要取消的邮箱"这两条命令进行取消,然后再通过步骤5重新设置用户名和邮箱。
    在这里插入图片描述

    四、使用Git — 创建本地库

    补充知识:版本库又名仓库,英文名repository,你可以简单的理解为一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”;这也是Git的强大之处。
    8.创建一个目录, 进入该目录
    在Linux下能用的文件操作命令,这里基本也都可以使用;cd d:移动到d:盘下,创建一个目录,我这里叫做firstRepo,通过mkdir firstRepo命令。
    在这里插入图片描述
    9.通过git init命令将这个文件夹变成一个本地的仓库,以后就可以通过Git管理这个本地仓库了。
    在这里插入图片描述
    这时候我们发现当前目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,除非你明确知道自己在干什么,否则最好不要动这个目录里面的文件。
    在这里插入图片描述
    补充知识:所有的版本控制系统,都能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动记录下来,也就是知道图片从1kb变成2kb,但是到底改了什么,版本控制也不知道。

    五、使用Git — 文件入库

    10.把文件添加到版本库
    第一步: 在当前目录下创建一个文件,我这里创建一个readme.txt文件,并写入一行内容,我写入的是aaaaa这是第一行
    在这里插入图片描述
    第二步: 通过命令git status查看当前仓库文件的状态。
    在这里插入图片描述
    我们可以看到,在master分支上有一个没有跟踪的文件readme.txt,这就是因为我们创建之后写了第一行之后没有添加到暂存区
    补充知识:工作区,就是在电脑里能看到的目录,暂存区,英文名叫stage,或者index,一般存放在.git/index中,所以我们把暂存区也叫做索引;版本库,工作区有一个隐藏目录.git这个不算工作区,是Git的版本库。

    第三步: 使用git add readme.txt命令把readme.txt文件加入到暂存区。再使用git commit -m "第一次提交readme.txt"把readme.txt从暂存区提交到版本库。
    在这里插入图片描述
    从红色框中我们可以看到一个文件更改了,就是readme.txt。

    第四步: 我们再通过git status看一下当前工作区的状态
    在这里插入图片描述
    我们可以看到,没什么可以做的了。

    继续更改readme.txt内容,在之前的基础之上增加一行22222222内容,继续使用git status查看。
    在这里插入图片描述
    从图中可以看到新修改了但是没有staged就是没有存入暂存区。

    11.我们想看一下readme.txt到底改了什么内容,可以使用git diff readme.txt在这里插入图片描述
    从这里我们可以详细看到有哪些内容变动了。
    清楚了被改动的地方,我们可以放心的提交到版本库了,使用git add readme.txtgit commit -m " 增加了一行2222"两条命令。

    六、使用Git — 版本回退

    通过上面,我们清楚了怎么修改文件并且再保存了,现在对readme.txt再继续进行修改,再增加一行内容为33333,继续执行上面的命令添加到版本库。
    在这里插入图片描述
    现在我们对readme.txt总共已经进行了几次次修改,想要查看一下历史记录该怎么查?

    12.使用命令git log查看历史版本记录
    在这里插入图片描述
    13.还可以按照每一次版本变更为一行内容进行显示,使用命令git log --pretty=oneline
    在这里插入图片描述

    现在我需要版本回退,想把当前的版本回退到上一个版本,可以使用如下两种命令:
    git reset --hard HEAD^回到上一个版本,git reset --hard HEAD^^回退到上上一个版本,以此类推;
    ② 如果回退到前50个版本的话,使用方法①就显得不太明智了,我们可以使用简便命令操作:git reset --hard HEAD~50就可以了。
    当前readme.txt文件内容如下:(使用Linux中的cat方法可以查看)
    在这里插入图片描述
    执行git reset --hard HEAD^命令回到上一版本,然后再通过cat查看:在这里插入图片描述
    我这里已经成功回到了上一版本了,我这里上一版本是最开始的空文件,是因为中间的几次更改我一边写帖子一边操作忘记添加到版本库了。

    14.我们现在又想回到刚才回退之前的最新版本了,但是使用git log --pretty=oneline查看的是比当前老的版本,我们只能通过git reflog来查看比当前新的版本, 这时候我们看每一行都有一串黄色的字符,这个是每次的版本号
    在这里插入图片描述
    可以看到增加3333这一行对应的版本号,我们还可以通过git reset --hard 版本号到达指定版本号。
    在这里插入图片描述
    在这里插入图片描述
    按照版本号恢复之后,我们通过cat查看,可以看到是最新的版本了。

    小结一下: git add把文件添加到暂存区 ; git commit提交更改到当前分支上;master是一个分支,前面的HEAD是master分支的名称。


    我们现在再在readme.txt文件中添加一行内容为444444444,同时再新建一个文件test.txt内容testing, 先用命令git status查看一下状态,如下:
    在这里插入图片描述
    15.先使用git add命令把2个文件都添加到暂存区,再使用git status来查看状态:
    在这里插入图片描述
    再使用git commit一次性提交到分支上,如下:
    在这里插入图片描述

    七、使用Git — 撤销修改和删除文件

    16.撤销修改
    先在readme.txt文件中增加一行55555555555,通过命令查看:
    在这里插入图片描述
    这时候我发现我新增加的555555内容有问题,我必须马上恢复以前的版本,现在可以采取的操作有:
    ① 如果知道要删掉的内容,直接可以手动去改掉,然后重新add并commit即可。
    ② 也可以按照前面版本回退的方法直接恢复到上一个版本。git reset --hard HEAD^
    这时候我们还有第三种方法,先看一下当前状态:
    在这里插入图片描述
    这个时候我们发现红线内告诉我们了说使用git checkout -- file可以丢弃工作区的修改,如下:
    在这里插入图片描述
    我们来解释一下git checkout -- readme.txt这个命令:
    ① readme.txt自从修改之后还没放到暂存区,使用撤销修改就回到了和版本库一模一样的状态了。
    ② 另一种就是readme.txt已经放入暂存区看,接着又作了修改,撤销修改之后就回到了添加暂存区后的状态。
    上面撤销55555就是情况①
    对于第②种情况,我们对readme.txt添加一行内容为66666666666,接着git add添加到暂存区后,再添加内容77777,想通过撤销命令让其回到暂存区后的状态。如下:在这里插入图片描述
    这里要注意了,命令git checkout -- readme.txt中的 --不能省略,不然变成创建分支的命令了。

    17.删除文件
    现在在暂存区中增加b.txt文件,然后提交,再执行rm b.txt删除工作区的b.txt如下:在这里插入图片描述
    我们可以打开文件夹看到,b.txt已经不在工作区了。在这里插入图片描述

    现在我们只是把b.txt从工作区中删掉了,但是前面我们已经把当前状态同步到了版本库了,注意这句话的表达方式,我为什么没说是把b.txt提交到版本库了,而是讲当前状态同步;

    选择① 执行commit(commit有交托给的意思,可以品味一下这个命令的真正意义)命令,把当前状态提交到版本库,这样当前状态就会同步至版本库,版本库内的b.txt就会被删掉。

    选择② 在我们没有commit之前,从版本库中恢复此文件下来:
    可以使用git checkout -- b.txt
    在这里插入图片描述
    这时候我们可以看一下工作区的b.txt又回来了,如下:
    在这里插入图片描述

    下一步就是使用Git连接远程仓库GitHub了。

    请移步至我的另一篇博客Git命令行管理GitHub远程仓库详解

  • 相关阅读:
    Jzoj4822 完美标号
    Jzoj4822 完美标号
    Jzoj4792 整除
    Jzoj4792 整除
    Educational Codeforces Round 79 A. New Year Garland
    Good Bye 2019 C. Make Good
    ?Good Bye 2019 B. Interesting Subarray
    Good Bye 2019 A. Card Game
    力扣算法题—088扰乱字符串【二叉树】
    力扣算法题—086分隔链表
  • 原文地址:https://www.cnblogs.com/duanming/p/11830252.html
Copyright © 2011-2022 走看看