git 之 git log命令原来还能这么玩

git 是目前一个非常流行的库管理工具,git log 也是比较重要的一个命令

为什么网上这个文章那么多,我还要记录一篇,因为我写的都是我经常会用到的,实用的,并且会告诉大家他们的逻辑和道理

这里简单说几个实用的命令

1.显示前2次提交的日志

git log -2

2. 显示最近一次提交的代码的详细信息

git log -1 -p

3. 显示最近一次提交的代码的简要信息

git log -1 --stat 

4. 显示最近一次提交的代码的超级简要信息(hash和commen)

 git log -1 --pretty=oneline

 5. 一个我们会使用的起飞的用法

git log --pretty='%h - %an - %s' 

 具体代表如下:

%H

提交的完整哈希值

%h

提交的简写哈希值

%T

树的完整哈希值

%t

树的简写哈希值

%P

父提交的完整哈希值

%p

父提交的简写哈希值

%an

作者名字

%ae

作者的电子邮件地址

%ad

作者修订日期(可以用 --date=选项 来定制格式)

%ar

作者修订日期,按多久以前的方式显示

%cn

提交者的名字

%ce

提交者的电子邮件地址

%cd

提交日期

%cr

提交日期(距今多长时间)

%s

提交说明

 6. 添加了一些 ASCII 字符串来形象地展示你的分支、合并历史

git log --pretty="%h %s" --graph

 7. 来看一个实际的例子,如果要在 Git 源码库中查看 Junio C Hamano 在 2008.10.1 - 2008.11.1其间, 除了合并提交之外的哪一个提交修改了测试文件,可以使用下面的命令:

$ git log --pretty="%h - %s" --author='Junio C Hamano' --since="2008-10-01" \
   --before="2008-11-01" --no-merges -- test-dir/
5610e3b - Fix testcase failure when extended attributes are in use
acd3b9e - Enhance hold_lock_file_for_{update,append}() API
f563754 - demonstrate breakage of detached checkout with symbolic link HEAD
d1a43f2 - reset --hard/read-tree --reset -u: remove unmerged new paths
51a94af - Fix "checkout --track -b newbranch" on detached HEAD
b0ad11e - pull: allow "git pull origin $something:$current_branch" into an unborn branch

在近 40000 条提交中,上面的输出仅列出了符合条件的 6 条记录。

这个命令一般用来排错,可能有多个人开发同一个项目的时候,合并修复冲突的时候不小心修改了我们的某些代码,那么我们就可以根据这个来排错

8. 补充:当然如果说需要找到这个人修改了我们某个特定内容的时候,可以使用过滤

比如我们需要找到,修改了我们xxx内容的hash,(-G 后边可以跟正则表达式)

git log -S 'xxx' --pretty='%H'

12点了,我还在学习,你有什么理由不努力一下? 

猜你喜欢

转载自blog.csdn.net/weixin_42335036/article/details/122974672