码迷,mamicode.com
首页 > 其他好文 > 详细

Git命令学习之旅——日志和穿梭版本

时间:2016-04-01 18:50:37      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:



在总结了git命令的基础之后,接下来我们看一下基础的一些进阶内容:删除撤销命令,日志查看命令等


既然有添加文件的功能,那么相对应的肯定有移除文件的功能,命令如下:git rm 【文件名】

在输入命令之后,如下图所示:

技术分享

提示已经删除了“c.txt”文件,这个时候再用git status查看一下状态,如下图:

技术分享

接下来的操作就和正常的添加操作一样了,add到暂存区,commit到分支,最后push到远程库(可以点击Git命令学习之旅——基础操作 查看)



如果我们已经将文件修改了之后添加到了暂存区,但是突然不想要了,不想提交和推送了,我们应该怎么办?

可能有的读者已经发现了,刚刚的删除c.txt时,系统已经给出了提示

输入命令:git reset HEAD 【文件名】             即可将本来已经保存到暂存区中的文件删除



但是git命令更为强大的一点在于,不仅仅可以将你在add之后保存在暂存区的文件删除,还可以将你在工作区内修改的内容删除,恢复到最开始的样子

如下图,我们已经对a.txt文件进行了修改,然后查看一下现在的状态:

技术分享

同样的根据系统给出的提示,此时有两种选择,第一个就是add到暂存区,第二个就是丢弃对工作区的改动

输入命令:git checkout 【文件名】                   即可删除已经对文件进行的操作

在有这个功能的保障下,任何人对你的文件内容进行了修改,你都可以直接丢弃,不用再担心自己的文件被修改了


可是如果是自己对文件进行了修改,却记不起来到底对文件的什么地方进行了修改,我们应该怎么办呢?

这里我们需要引入另外的一个命令:git diff 【文件名】       注:如果不加文件名,默认输出所有的不同点

通过diff命令我们就可以查看自己修改了文件的哪些地方了,如下图:

技术分享

可以看到我们新添加了一行”hello git!!“


这个命令就是将你最新修改后的文件和你原来的文件进行比较,找出不同的地方(文件也可以是已经存放在暂存区的文件,甚至是提交到分支的文件)

说到提交到分支的文件(也就是commit 之后的文件),我们如果查看它的状态,系统只会返回下图:

技术分享

我们应该如何查看自己commit是不是我们想push的呢?

输入命令:git commit --amend

我们就会进入到文本编辑器中查看这次的commit信息(我的是vim)如下图:

技术分享

通过编辑器确定没有问题之后,就可以push了



在日常生活工作中,除了添加、删除这些操作以外,我们最为常用的还有重命名

输入命令:git mv 【原文件名】 【新文件名】              其实和linux系统内的重命名方式一样

执行之后,可以通过ls命令查看文件名有没有改变,当然最简单的还是使用git status查看,如下图:

技术分享

可以发现我们将”a.txt“重命名为了”ab.txt“




现在,本地上任何的改变我们都可以产看并且解决了,接下来就是对push操作的查看了

输入命令:git log              可以查看最近push的日志,如下图:

技术分享

我们可以查看到刚刚我们对a.txt重命名的提交报告,可以清楚的看到时间和作者(刚刚重命名的操作必须要push之后才可以看得到)

如果我们觉得这个样子并不详细,我们像看一下具体干了什么怎么办呢?

输入命令:git log --stat    

技术分享

这样就可以看到a.txt 文件被删除,而ab.txt文件被添加了

这里的截图只是截下来了我们刚刚push的最后一个操作的log,其实默认会显示好几个

我们也可以通过参数设定来自主控制log的显示个数

输入命令:git log -p -【想要显示log的个数】

技术分享

这里是输入:git log -p -2 后的截图,可以发现显示的非常全面,甚至包括文件里面内容的改变都可以显示出来

但是有的时候我们并没有那么多时间来仔细查看那么多的日志,我们只需要查看一下提交的信息就好了,我们应该怎么做呢?

输入命令:git log --pretty=oneline

技术分享

可以看到,这样就可以快速的查看到最近的提交日志

对于日志的查看,这里只能简单说这么多了,剩下还有很多操作来使得我们方便查阅日志,可以输入git log --help 进行查看




那么我们查看了日志有什么用呢?

这个用处当然多了,除了大家都知道那些之外,git还有了版本穿梭的能力

如刚刚看到的,输入:git log --prett=oneline 之后我们可以看到许多的日志

后面是提交的提示信息,那么前面是什么呢?

前面就是我们的版本号了,接下来就是将这些版本号利用起来的时候了

输入命令:git reset --hard 【版本号】           这里不需要完全输入,输入前6位一般就可以了

技术分享

然后你就可以得到这样一则回复,显示你已经回到了刚刚你输入版本号的那个版本了,你本地的所有内容都恢复到了那个版本

同样的,你的日志记录也回到了刚刚那个版本里面,那么我们如果想要回来需要怎么做呢?

输入命令:git reflog

技术分享

这样我们就可以看到所有的版本号了,那么我们想要回到哪个版本直接输入相对应的版本号就可以了,是不是很有趣呢?




我们可以通过这个部分总结的命令,使得我们日常的生活更加有条理,不会对自己到底做了什么都不知道



Git命令学习之旅——日志和穿梭版本

标签:

原文地址:http://blog.csdn.net/anooyman/article/details/51027009

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!