命令 | 说明 |
---|---|
git log | 查看历史提交记录 |
git blame (file) | 以列表形式查看指定文件的历史修改记录 |
git log
-
在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用
git log
命令查看。 -
git log
命令用于查看 Git 仓库中提交历史记录。 -
git log
显示了从最新提交到最早提交的所有提交信息,包括提交的哈希值、作者、提交日期和提交消息等。 -
git log 命令的基本语法:
git log [选项] [分支名/提交哈希]
-
常用的选项包括:
-
-p
:显示提交的补丁(具体更改内容)。 -
--oneline
:以简洁的一行格式显示提交信息。 -
--graph
:以图形化方式显示分支和合并历史。 -
--decorate
:显示分支和标签指向的提交。 -
--author=<作者>
:只显示特定作者的提交。 -
--since=<时间>
:只显示指定时间之后的提交。 -
--until=<时间>
:只显示指定时间之前的提交。 -
--grep=<模式>
:只显示包含指定模式的提交消息。 -
--no-merges
:不显示合并提交。 -
--stat
:显示简略统计信息,包括修改的文件和行数。 -
--abbrev-commit
:使用短提交哈希值。 -
--pretty=<格式>
:使用自定义的提交信息显示格式。 -
可以用 –reverse 参数来逆向显示所有日志,如
git log --reverse --oneline
-
指定日期,可以执行几个选项:–since 和 --before,但是你也可以用 --until 和 --after。如
git log --oneline --before={3.weeks.ago} --after={2024-02-14} --no-merges
-
$ git log --pretty=oneline
b65a6a5df0d0e5ddf4da1cccc641927eb3224b60 (HEAD -> master) Merge branch 'dev'
3f3bdf2adbefaa2595eb77cc0aa101ce925b3c17 修改代码
6b789116122f54f78987de07b339e13f6ce4a760 changed the text.txt
405fb585eb82853f878fa3381f2decd2572f1dc8 add text.txt
你看到的一大串类似b65a6a5...
的是commit id
(版本号),Git的commit id
不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id
和我的肯定不一样,以你自己的为准。
那为什么要这样做呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。
更多 git log 命令可查看 http://git-scm.com/docs/git-log
git blame
-
git blame
命令用于逐行显示指定文件的每一行代码是由谁在什么时候引入或修改的。 -
strong>git blame
可以追踪文件中每一行的变更历史,包括作者、提交哈希、提交日期和提交消息等信息。 -
如果要查看指定文件的修改记录可以使用 git blame 命令,格式如下:
git blame [选项] <文件路径>
- 常用的选项包括:
-L <起始行号>,<结束行号>
:只显示指定行号范围内的代码注释。-C
:对于重命名或拷贝的代码行,也进行代码行溯源。-M
:对于移动的代码行,也进行代码行溯源。-C -C
或-M -M
:对于较多改动的代码行,进行更进一步的溯源。--show-stats
:显示包含每个作者的行数统计信息。
显示文件每一行的代码注释和相关信息:
git blame <文件路径>
只显示指定行号范围内的代码注释:
git blame -L <起始行号>,<结束行号> <文件路径>
对于重命名或拷贝的代码行进行溯源:
git blame -C <文件路径>
对于移动的代码行进行溯源:
git blame -M <文件路径>
显示行数统计信息:
git blame --show-stats <文件路径>
git blame
命令是以列表形式显示修改记录,如下实例:
$ git blame text.txt
6b789116 (keduo 2024-02-24 21:06:18 +0800 1) 欢迎关注CSDN@keduo
3f3bdf2a (keduo 2024-02-24 21:23:53 +0800 2) CSDN@keduo感谢你的关注