一. 什么是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远程仓库详解

Git详解使用教程的更多相关文章

  1. windows 安装Git详解

    windows 安装Git详解 一.Git简介 Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Lin ...

  2. loadrunner11.0 安装破解详解使用教程

    loadrunner11.0 安装破解详解使用教程 来源:互联网 作者:佚名 时间:01-21 10:25:34 [大 中 小] 很多朋友下载了loadrunner11但不是很会使用,这里简单介绍下安 ...

  3. 【转】Git详解之一:Git起步

    原文网址:http://blog.jobbole.com/25775/ 原文:<Pro Git> 起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后 ...

  4. Git详解之一:Git起步

    起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章,你就会明白为什么 Git ...

  5. Git详解之一 Git实战

    Git详解之一 Git实战 入门 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章 ...

  6. 重装Windows系统 入门详解 - 基础教程

    重装Windows系统 入门详解 - 基础教程 JERRY_Z. ~ 2020 / 10 / 13 转载请注明出处!️ 目录 重装Windows系统 入门详解 - 基础教程 一.说明 二.具体步骤 ( ...

  7. Git详解之三 Git分支

    相关文档 — 更多 Git 基础培训.ppt GIT 使用经验.ppt GIT 介绍.pptx GIT 分支管理是一门艺术.docx Eclipse上GIT插件EGIT使用手册.docx git/gi ...

  8. (转)OWASP ZAP下载、安装、使用(详解)教程

    OWASP Zed攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一,由数百名国际志愿者*积极维护.它可以帮助您在开发和测试应用程序时自动查找Web应用程序中的安全漏洞. 也可以说:ZAP是一个 ...

  9. Git详解之二 Git细节拾遗

    git知识点详解 文件状态 现在我们手上已经有了一个真实项目的 Git 仓库,并从这个仓库中取出了所有文件的工作拷贝.接下来,对这些文件作些修改,在完成了一个阶段的目标之后,提交本次更新到仓库. 请记 ...

随机推荐

  1. e课表项目第二次冲刺周期第五天

    昨天干了什么? 昨天,我们组商量了主界面的主要设计,然后我查找了相关的资料,将主界面改成了一个连接数据库,并将数据库中的数据进行显示.接着,又在网上搜了一些资料,为数据建立了一个布局,能够显示该数据的 ...

  2. wx.navigateTo、wx.redirectTo、wx.reLaunch、wx.switchTab和wx.navigateBack的区别

    wx.navigateTo.wx.redirectTo.wx.reLaunch.wx.switchTab和wx.navigateBack有什么区别呢? **wx.navigateTo:** 用于保留当 ...

  3. Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 10.x

    运行Reac项目报: Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js ...

  4. java架构之路-(Redis专题)Redis的高性能和持久化

    上次我们简单的说了一下我们的redis的安装和使用,这次我们来说说redis为什么那么快和持久化数据 在我们现有的redis中(5.0.*之前的版本),Redis都是单线程的,那么单线程的Redis为 ...

  5. ElasticSearch安装SQL插件

    ElasticSearch安装SQL插件下载地址(中国大佬开发的,膜拜ing):https://github.com/NLPchina/elasticsearch-sql 1.记得选择和自己Elast ...

  6. Springboot 系列(十四)迅速启用 HTTPS 加密你的网站

    1. 获取 HTTPS 证书 正常情况下 HTTPS 证书需要从证书授权中心获得,这样获得的证书才具有公信力,也会被各种浏览器客户端所认可.常见的证书品牌如 Symantec,GeoTrustm,Tr ...

  7. 第3章(1) Linux内核相关概念

    Linux内核的组成 1. Linux内核源代码的目录结构 arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如 i386.arm. arm64.powerpc.mips 等.Linu ...

  8. Ajax:后台jquery实现ajax无刷新删除数据及demo

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8gAAAFSCAIAAAChUmFZAAAgAElEQVR4nO29z4scWZbn2/+Hb30zi8

  9. PHP list的赋值

    List右边的赋值对象是一个以数值为索引的数组,左边的变量的位置和赋值对象的键值一一对应,有些位置的变量可以省略不写.非末尾的被赋值变量省略时,分隔的逗号不能省略.左边变量被赋值的顺序是从右到左的. ...

  10. Python 3 既是激进的又是克制的,这些提议被否决了

    [译]PEP 3099--Python 3 中不会改变的事情 导语: Python 3.8 已经发布了,引进了不少变更点.关于 3.9 预计引入的修改,也披露了一些.我们之前还关注过 GIL 的移除计 ...