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'
具体代表如下:
|
提交的完整哈希值 |
|
提交的简写哈希值 |
|
树的完整哈希值 |
|
树的简写哈希值 |
|
父提交的完整哈希值 |
|
父提交的简写哈希值 |
|
作者名字 |
|
作者的电子邮件地址 |
|
作者修订日期(可以用 --date=选项 来定制格式) |
|
作者修订日期,按多久以前的方式显示 |
|
提交者的名字 |
|
提交者的电子邮件地址 |
|
提交日期 |
|
提交日期(距今多长时间) |
|
提交说明 |
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点了,我还在学习,你有什么理由不努力一下?