Git基本操作(七)

历史记录

1. 唯一ID

每一次“commit”都会有一个唯一的名称。如下黑体字所示:

$ git log
commit 5b888402aadd3cd41b3fe8c84a8658da07893b20
Author: rocrocket <wupengchong@gmail.com>
Date:   Wed Sep 24 13:16:46 2008 +0800

after pull from rocrocket

Hello!!!!!

2. 查看具体Commit信息

我们使用git show再加上述的commit名称来显式更详细的commit信息:

$ git show 5b888402aadd3cd41b3fe8c84a8658da07893b20

你完全可以用一个最短的且唯一的“名称前几个字符”来只待某次commit:

$ git show 5b888 //只要能区别与其他名称就足够了

使用git show加分支名称,亦可以显示分支信息:

$git show master

$git show experimental

使用HEAD字段可以代表当前分支的头(也就是最近一次commit):

$git show HEAD

每一次commit都会有”parent commit”,可以使用^表示parent:

$git show HEAD^ //查看HEAD的父母的信息
$git show HEAD^^ //查看HEAD的父母的父母的信息
$git show HEAD~4 //查看HEAD上溯4代的信息

要注意的是git-merge是会产生双父母的,这种情况这样处理:

$git show HEAD^1 //查看HEAD的第一个父母
$git show HEAD^2 //查看HEAD的第二个父母

3. 别名

你可以给复杂名称起个别名:

$ git tag V3 5b888 //以后可以用V3来代替复杂的名称(5b888…)
$ git show V3
$ git branch stable V3 //建立一个基于V3的分支

4. 检索

可以用git grep帮助我们搜索:

$ git grep “print” V3 //在V3中搜索所有的包含print的行
$ git grep “print” //在所有的历史记录中搜索包含print的行

5. 定位具体记录

$ git log V3..V7 //显示V3之后直至V7的所有历史记录
$ git log V3.. //显示所有V3之后的历史记录。注意<since>..<until>中任何一个被省略都将被默认设置为HEAD。所以如果使用..<until>的话,git log在大部分情况下会输出空的。

$ git log –since=”2 weeks ago” //显示2周前到现在的所有历史记录。具体语法可查询git-ref-parse命令的帮助文件。
$ git log stable..experimental //将显示在experimental分支但不在stable分支的历史记录
$ git log experimental..stable //将显示在stable分支但不在experimental分支的历史记录

上一篇:Git基本操作(六)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,800评论 4 54
  • 有些人或许从来没有出现过在你的朋友圈,只有你知道她很重要! 她如春风般沐浴、她如繁星璀璨、她是似少女的温...
    明清子echo阅读 344评论 1 0
  • 阴差阳错的,我来到了上海谋求一份外贸工作。刚到的前三天一直住在宾馆,因为同学和朋友那里都没有我的落脚之处,无奈只好...
    壹平方阅读 307评论 1 0
  • 文心 一人一事一片天,半俗半雅半疯癫。愿得文心清如水,遥寄情思星月间。成败不惊听风雨,宠辱偕忘游名山。我是人间痴情...
    醉后长亭阅读 865评论 0 4
  • 导读:人到中年,才发现家庭是那么地重要,亲人的关怀是那么地温暖。尽管偶尔会为孩子的教育而烦恼,也会为事业的不顺而纠...
    中恩国际连金锋阅读 218评论 0 0

友情链接更多精彩内容