git学习

这里仅仅记录一些个人的练习以及理解,仅供参考哈。

1、git简易工作流程图

在这里插入图片描述
这个图就描述了我们正常使用git的流程,
1、在工作区编写文档,文档必须要放在工作区目录或它的子目录中,不然git找不到。
2、通过add命令将工作区的文档添加到stage(暂存区),同时也表示,该文件将会被git跟踪,暂存区的文件就是下一次要提交的文件,在工作区中没有被添加到暂存区的文件不会被提交。
3、通过commit将暂存区的内容提交到当前的分支上,并清空暂存区的内容。使用Git时每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit,以便将来穿梭到任意版本,也就是所谓的版本控制。
4、最后将本地仓库的文件推到(push)到远程仓库,也就是gitHub。
这样就ok啦,接下来就根据上面提到的概念结合实际操作加深一下理解!

2、工作区和版本库

工作区就是我们自己电脑里能看到的关于git的目录,我创建了一个名为MyRepository的文件夹作为工作区,如图,
在这里插入图片描述
现在这里面还是空的,我们需要将它交给git管理,在文件夹“右击”选择“git bash here”打开命令窗口,执行 git init命令,如图
在这里插入图片描述
执行命令后会发现多了一个 .git的目录(如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见),这样就表示当前目录MyRepository为我们的工作区,由git管理。

这个.git目录,就代表我们的版本库。版本库里面存了很多东西,其中最重要的就是称为stage的暂存区还有git自动为我们创建的第一个分支master以及指向master的head指针。

暂存区,是git中比较重要的一个概念,Git和其他版本控制系统的一个不同之处就是git有暂存区的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么。

3、文件添加到版本库(暂存与提交)

首先在工作区创建一个文件,one.txt,并添加内容为:hello git!

在添加之前我们先看看当前版本库的一个状态,使用命令git status查看,如图
在这里插入图片描述
git详细的告诉了我们,one.txt 还没有被提交过,所以它的状态是Untracked,并提示我们使用**git add **命令加以追踪。

我们工作区以及版本库现在的状态是这样的,
在这里插入图片描述
接下来通过git add命令将工作区的内容添加到暂存区中,然后再使用git status命令查看一下状态,
在这里插入图片描述
执行git add命令后,没有任何提示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
然后执行git status 可以看到提示, one.txt 作为下一次提交的新文件,实际上这个时候就是把工作区的one.txt添加到了暂存区中,如图,
在这里插入图片描述
接下来就是将暂存的文件进行提交,也就是将暂存区的内容,提交到master分支上,使用git commit -m"本次提交描述信息",这样方便我们日后从历史记录里面找到相应的版本,如图
在这里插入图片描述
提交之后,git会提示我们当前提交的分支master,以及本次提交对应版本的缩写4e3291a等信息。
再次使用git status命令查看状态,
在这里插入图片描述
提示工作区是干净的,没有需要提交的内容,这个时候实际上就是将暂存器的内容,提交到了master分支上,并将暂存器清空,此时的版本库是这样的,如图
在这里插入图片描述

4、版本查看及回退

上面我们创建了一个one.txt文件,并进行了第一次提交,但是我们在日常开发中,这个one.txt肯定会有多次的改动与提交,那么我们如何查看仓库的一个状态呢以及改动呢?接下来,就展示一下,如何使用git进行查看。

现在我们将one.txt进行改动,添加一行,录入“第一次改动”保存退出,
在这里插入图片描述
然后我们使用git status命令查看一下当前仓库的状态,
在这里插入图片描述
git 告诉我们one.txt被修改了,并且这个更改还没有进行暂存(add)和提交(commit),并提示我们使用git add /git commit 进行暂存和提交。
git status虽然告诉我们one.txt 被修改了,但是具体修改了什么内容不知道,如果我们想知道更改了哪些内容的话,可以使用git diff命令进行查看,如图
在这里插入图片描述
—a表示之前的版本,+++b表示更改后的版本,下面列出了更改前信息是“hello git!”,更改的内容是“第一次改动”,这样我们再进行提交的时候,心里就踏实了,为了记录下来这个版本(生成快照),所以需要我们暂存 提交一下, git commit -m"first update"

很快又来了新需求,于是我们进行了第二次改动,又添加了一行内容,“第二次改动”,然后提交,git commit -m“second update”,现在的one.txt 内容是这样的,
在这里插入图片描述
现在的one.txt一共是提交了三次,也就是对应三个版本,当前版本的内容是最新的,如果我们现在想回到上一次提交的版本或者最初的版本应该怎么做呢?

首先,使用git log命令查看从最近到最远的提交日志,
在这里插入图片描述
输出的信息详细的打印了提交的人、时间、提交内容的描述信息、以及对应的版本号,head表示当前的版本,如果觉得打印信息太多了,可以在git log命令后面添加 –pretty=oneline参数,
在这里插入图片描述
是不是更简单明了了呢!
Head->master 表示当前的版本,前面的一大串字符就是 版本号,通过版本号就可以回退到相应的版本。head ^ 表示上一个版本,head ^ ^ 表示上上个版本,依次类推,再远一点的版本还是使用对应版本号缩写吧,简单明了。
有了版本号,那么想回到对应的版本就小case了,假设现在需要回到上一个版本,直接上代码
在这里插入图片描述
输出信息告诉我们,现在的版本就是 first update 的那一版了,可以打开查看一下one.txt文件,
在这里插入图片描述
真的回到了第一次改动的版本,再试试看看能不能回到第一次提交的版本,这次我们使用版本号的形式,先找到hellogit 的版本号,只输入前几位就好,不用都写,不然也太傻瓜了,
在这里插入图片描述
再打开看看,
在这里插入图片描述
如你所愿,果然回到了最初的版本,如果版本很多,而我们想要回到最新的版本,但是又忘了哪一版才是最新的版本,该怎么办呢?git总是让我们有后悔药吃,git会记录每一次我们执行的命令,通过git reflog命令查看命令历史,就像这样,
在这里插入图片描述
上面git详细的记录了每一次提交版本的命令,这样就可以找到最初或最新的版本了。

现在来总结一下,版本的查看以及回退的命令。
首先,我们需要找到回退版本的版本号,需要使用git log --pretty=oneline命令进行查看,如果不知道哪一版才是我们想回到的版本,还可以通过git reflog命令查看。
然后 ,拿到对应版本号之后,通过 git reset --hard +对应版本号,回车搞定!

5、文件的撤销与删除

假如我们对文件进行了更改,当你准备进行提交的时候,突然发现了错误,比如我们现在one.txt文件的内容是hellogit!,我们将它改为hellogit!yeye!但是你发现这样改不对,会是个隐藏的bug,于是你想回到上次提交的版本,当容你可以进行版本回退,但是有没有更快的方法呢?于是我们这样做,使用git status查看一下当前的状态,
在这里插入图片描述
git告诉我们可以使用git checkout – < file> 去丢弃工作区的修改(可以理解为撤销,撤销回最近一次提交的版本),那我们就试一下,然后再打开one.txt文件看一下,
在这里插入图片描述
果然回到了上次提交时的状态。

你可能会问,这样撤销是因为没有提交,那如果提交了呢?
那我们将one.txt文件再次更改,然后添加到暂存区中,
在这里插入图片描述
git 告诉我们,可以使用 git reset head < file> 命令将暂存区中的修改回退到工作区,head表示最新的版本,那就试一下,然后再用git status命令查看一下,
在这里插入图片描述
果然,现在暂存区已经是干净的了,但是工作区还是有修改,还记得如何丢弃工作区的修改吗?
在这里插入图片描述
于是,现在终于回到了git add 之前的版本,整个世界都安静了!有木有!

可能你又要问了,那不仅add 还commit了呢?那该怎么办,如果你有这样的疑问,请回到上面“版本回退”的部分!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值