本篇博客介绍Git真正强大的地方,首先我们来修改一下文件1,添加一行数据,然后使用git status命令查看一下仓库的状态。

Git仓库管理git status命令可以让我们时刻掌握仓库当前的状态,我们看到我们修改了文件1,而且没有将这种修改放到暂存区中(Changes not staged for commit),我们来看看对文件1做了什么修改,使用git diff 1命令,原来是增加了一行hello git。

Git仓库管理

diff就是different的意思,就是看看文件做了什么改变,然后我们把修改进行一下提交。每次提交我都用git status打印出了当前仓库的状态,大家好好看一下他们的输出,最后显示仓库没有东西需要提交。

Git仓库管理

现在,我们继续对文件1做一下修改,然后再次提交!

Git仓库管理

我们平时写项目的时候就可以这么做,当你完成了一个功能的时候就可以提交一次你自己得修改,把每一次的这种修改做一个快照保存下来,等你需要看你某一次的修改的时候可以方便的进行查看。或者一旦你把某个文件改乱了,误删了文件,利用一些方法可以从最近的一个commit恢复(所以要先有commit呀),然后继续工作,而不是把⼏个月的工作成果全部丢失。所以,在你必要的时候记得commit!下面我们使用git log命令来查看一下自己都进行了哪些提交。怎么样,这几次的commit是不是都在这里了,log信息还挺全的!

Git仓库管理

使用如下的log命令,可以简化输出。

Git仓库管理

git log命令显⽰示从最近到最远的提交日志,如果你的日志比较多,一次不会显示完,按下回车继续显示,按下Q代表退出log显示,你看到的一⼤串类似“ 3628164...882e1e0”的是commit id(版本 号),是用十六进制表⽰的。

现在,我们来将版本回退到上一个版本,首先Git必须知道当前版本是哪个版本,在Git中,用HEAD表⽰当前版本,也就是最新的提交,上一个版本就是 HEAD^,上上一个版本就是HEAD^^,往上100个版本写成HEAD~100。然后敲入命令git reset --hard HEAD^,这样我们就回退到了上一个版本,你可以输出一下文件的内容就知道了,然后使用log,看一下日志。

Git仓库管理

当然你也可以使用版本号来进行回退,将HEAD^替换为你要回退的版本的版本号,这个版本号就是log输出前面的那一串东西,你只需要写上前6、7位数字就可以了。接着我们就回退到最新的版本,也就是从这个版本回退到刚刚的版本,但是log你也看到了,并没有之前的版本了,不过我们可以从上边的日志中找到这个版本号,然后回退,看看是不是又回来了!

Git仓库管理

其实回退的原理就是把HEAD指针进行了移动,移动到了时间串的某一个时刻。如果我在hello git这个版本没有找到之前版本的版本号怎么办?我们可以使用git reflog命令来查看自己都进行了哪些操作,版本号自然也就找到了。

Git仓库管理