文章目录
第一步:下载
第二步:安装
第三步:如何使用Git
第四步:如何操作
4.1 提交文件
4.2 修改文件
4.3版本回退
4.4 恢复版本回退
4.5 撤销修改和删除文件
前言
git介绍
1. 分布式:Git 版本控制系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具。
2. 保存点:Git 的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目的状态;可以在该保存点将多人提交的源码合并, 也可以回退到某一个保存点上。
3. Git离线操作性:Git可以离线进行代码提交,因此它称得上是完全的分布式处理,Git 所有的操作不需要在线进行;这意味着 Git 的速度要比SVN 等工具快得多,因为 SVN 等工具需要在线时才能操作,如果网络环境不好, 提交代码会变得非常缓慢。
4. Git基于快照:SVN 等老式版本控制工具是将提交点保存成补丁文件,Git提交是将提交点指向提交时的项目快照,提交的东西包含一些元数据(作者,日期,GPG 等)。
5. Git的分支和合并:分支模型是 Git 最显著的特点,因为这改变了开发者的开发模式,SVN 等版本控制工具将每个分支都要放在不同的目录中, Git 可以在同一个目录中切换不同的分支。
6. 分支即时性:创建和切换分支几乎是同时进行的,用户可以上传一部分分支,另外一部分分支可以隐藏在本地,不必将所有的分支都上传到GitHub 中去。
7. 分支灵活性:用户可以随时创建、合并、删除分支,多人实现不同的功能,可以创建多个分支进行开发,之后进行分支合并,这种方式使开发变得快速、简单、安全。
Git一般工作流程:
1. 从远程仓库中克隆 Git 资源作为本地仓库。
2. 从本地仓库中 checkout 代码然后进行代码修改
3. 在提交前先将代码提交到暂存区。
4. 提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。
5. 在修改完成后,需要和团队成员共享代码时,可以将代码 push 到远程仓库。
第一步:下载
在安装Git之前,首先我们要下载Git安装包,官网下载地址:
https://git-scm.com/download这里以Windows为例:
注意你的电脑是32位的还是64位的,根据不同的版本下载:
第二步:安装
双击文件安装 ,安装图片我没有截完,重点部分已截,没有的图片可以直接点Next,这个影响不大。
根据下面图片安装
第三步:如何使用Git
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
输入指令创建用户名和邮箱,注意双引号前面有一个空格,有的同学没有空格后面使用就会报错。
创建用户名指令:git config --global user.name "xxx"
创建邮箱指令:git config --global user.email "xxx@xxxx.com"
创建版本库
版本库又名仓库,英文名 repository,可以简单的理解为一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。
之前我将Git安装在了D盘,这里我继续将文件保存到D盘,首先使用指令在控制台打开D盘
指令:cd D:
使用指令查看当前目录的所有文件
指令:ls
输入指令创建一个文件夹来保存代码
指令:mkdir gittest(不要输中文)
可以看到,我输入 mkdir gittest 它报错了,因为我之前创建了这个文件,所以不能创建同名文件,输入 mkdir gittest2 就成功了。接下来可以使用指令查看文件夹是否创建成功
指令:ls
可以看见文件存在,表面已经创建成功。使用指令在控制台打开刚才创建的文件
指令:cd gittest2(创建的文件名)
通过指令把这个目录变成 git 可以管理的仓库
指令:git init
这时候我们当前 gittest 目录下会多了一个.git 的目录,这个目录是 Git 来跟踪 管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把 git 仓 库给破坏了。如果看不见这个文件夹,就勾选显示隐藏文件,就能看到了。
此时我们的版本库也创建完成了,已经可以正式开始使用了。
第四步:如何操作
4.1 提交文件
下面先看下demo 如下演示:我在版本库gittest2 目录下新建一个记事本文件 readme.txt 内容为:7777777,记得保存。如下:
现在我们的工作区就已经创建了一个.txt文件了,接下来我们在控制台输入指令,将创建的readme.text文件添加到暂存区。
指令:git add readme.txt
没有任何提示,说明我们添加成功了。现在我们可以将 readme.txt 文件从暂存区提交至本地仓库
指令:git commit -m "(在这里输入你想要的注释)"
可以看到我们成功提交了文件。现在我们知道了提交指令,接下来我们还可以看看暂存区有没有文件未提交
指令:git status ,如图:
nothing to commit,它提示我们没有,到这里,大家应该稍微懂了一点git这个逻辑操作吧,还没理解的同学可以看看下面这张流程图:
4.2 修改文件
在gittext文件夹内修改一下readme.txt中的内容,比如删除我开始的内容
我们在控制台输入指令查看一下结果:
指令:git status
上面的命令告诉我们 readme.txt 文件已被修改,但是修改未被提交。接下来我们看下 readme.txt 文件到底改了什么内容,可以输入以下指令
指令:git diff readme.txt
根据开始的提交指令进行提交:
4.3版本回退
我们继续在readme.txt文件中进行修改,增添一行内容
在控制台将它添加至暂存区,再上传至本地仓库
我们已经对文件修改多次,可以通过以下指令查看记录
指令:git log
命令显示从最近到最远的显示日志,我们可以看到最近三次提交,使用指令:git log -- pretty=oneline 我们可以更直观看到
如果我们想使用版本回退操作,比如我想把当前的版本回退到上一个版本,可以使用指令:git reset --hard HEAD^
如果要回退到上上个版本只需把 HEAD^ 改成 HEAD^^ 以此类推。如果要回退到前100 个版本的话,我们可以使用下面 的简便命令操作:git reset --hard HEAD~10。现在我们再来查看下 readme.txt 内容:指令:cat readme.txt
4.4 恢复版本回退
指令:git reset --hard 版本号,图中框中的就是版本号
同学们注意了,假如我们已经关掉过一次命令行或 者333内容的版本号我们并不知道该怎么办呢?我们可以通过如下命令即可获取到版本号
指令:git reflog
通过git log 查询可以看到我们的文件又回退回去了。
以上就是一些基本的操作。完成了这些操作,我们再来回顾一下,或者说实践一下工作区和暂存区的区别。
工作区:就是你在电脑上看到的目录,比如目录下 gittest2 里的文件(.git 隐 藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版 本库。其中版本库里面存了很多东西,其中最重要的就是 stage(暂存区)(或者 叫 index),还有 Git 为我们自动创建了第一个分支 master,以及指向 master 的 一个指针 HEAD。
我们前面说过使用 Git 提交文件到版本库有两步:
第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存 区。
第二步:使用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当 前分支上。
下面我们来操作一下
我们在 readme.txt 再添加一行内容为 9999999,接着在目录下新建一个文件为 test.txt 内容为 test3
现在我们先使用 git add 命令把 2 个文件都添加到暂存区中,再使用 git status 来查看下状态
指令:git add readme.txt
指令:git add test.txt
指令:git status
4.5 撤销修改和删除文件
我们现在在 readme.txt 文件里面增加一行 内容为123456789,我们再通过命令查看一下
git restore -- readme.txt 意思就是,把 readme.txt 文件在工作区做的修改全部撤销,这里有两种情况,如下:
1. readme.txt 自动修改后,还没有放到暂存区,使用撤销修改就回到和版本库一模一样的状态。
2. 另外一种是 readme.txt 已经放入暂存区了,接着又作了修改,撤销修改 就回到添加暂存区后的状态。
这里我们可以发现,123456789没有了
对于第二种情况,我想我们继续做 demo 来看下,假如现在我们对 readme.txt 添加一行内容为 1111111,我 们git add 增加到暂存区后,接着添加内容 2222222,我们再通过撤销命令让其回到暂存区后的状态。
之后我们再分六步指令
第一步:cat readme.txt (在readme.txt文件中添加1111111后输入第一步指令);第二步:git add readme.txt(将修改过的readme.txt放入暂存区);第三步:cat readme.txt(查看是否添加完成);第四步:cat readme.txt(在readme.txt文件中添加2222222后输入第三步指令);第五步:git restore -- readme.txt (使用撤销指令,将为添加到暂存区的内容撤销掉);第六步:cat readme.txt (再次查看是否撤销),如图:
这时我们可以看到,未加入暂存区的2222222被撤销了。值得一提的是 git restore-- readme.txt 中的 -- 很重要,如果没有 - - 的话,那么命令变成创建分支了。
接下来讲一讲删除文件
在版本库gittest2目录新建一个文件 test2.txt,然后提交。如图操作
文件夹中也没有了
如果你想在版本库中恢复此文件的话,输入指令:git restore-- test2.txt
可以看见文件又在目录里面了,这是因为我们用了撤销。
以上就是文章的全部内容,还是要多动手实践,这里推荐大家去看吴青峰老师的博客,里面很多优质内容和学习资源可供学习和参考。