git log命令

git log命令

git log命令

Git是一种快速、高效的版本控制系统,它可以帮助开发者更好地管理代码的变更。在进行代码开发和维护过程中,我们经常需要查看项目的版本历史记录,以便了解项目的演变过程和方便代码的回滚和比较。而git log命令就是Git中用来查看提交历史的主要命令之一。

1. git log基本用法

1.1 查看提交历史

通过简单的git log命令,我们可以查看项目的提交历史。这将会列出所有提交的信息,包括提交的哈希值、作者、提交日期、提交说明等。

$ git log
commit e7bf9bc5a3b8168685ae81239debf9bd8878cd87 (HEAD -> master)
Author: John Doe <johndoe@example.com>
Date:   Thu Jan 21 09:30:48 2021 +0800

    Add feature A

commit a3edc5b1ac5e700a4e2683b27c759d2de750cf74
Author: Jane Smith <janesmith@example.com>
Date:   Wed Jan 20 10:15:32 2021 +0800

    Refactor code for better performance

commit 5f2741267e0c81e7ad8a81f5b11c45a8562bafd8
Author: John Doe <johndoe@example.com>
Date:   Tue Jan 19 14:02:03 2021 +0800

    Fix bug in feature B

1.2 限制日志的展示范围

如果项目提交历史很长,或者只需要查看最近几个提交记录,我们可以通过一些选项来限制git log命令的展示范围。

  • -n:限制显示的提交记录数量,例如git log -3只显示最近的3个提交。
$ git log -3
commit e7bf9bc5a3b8168685ae81239debf9bd8878cd87 (HEAD -> master)
Author: John Doe <johndoe@example.com>
Date:   Thu Jan 21 09:30:48 2021 +0800

    Add feature A

commit a3edc5b1ac5e700a4e2683b27c759d2de750cf74
Author: Jane Smith <janesmith@example.com>
Date:   Wed Jan 20 10:15:32 2021 +0800

    Refactor code for better performance

commit 5f2741267e0c81e7ad8a81f5b11c45a8562bafd8
Author: John Doe <johndoe@example.com>
Date:   Tue Jan 19 14:02:03 2021 +0800

    Fix bug in feature B
  • --since--until:限制显示在某时间范围内的提交记录,例如git log --since="1 week ago"只显示一周以内的提交。
$ git log --since="1 week ago"
commit e7bf9bc5a3b8168685ae81239debf9bd8878cd87 (HEAD -> master)
Author: John Doe <johndoe@example.com>
Date:   Thu Jan 21 09:30:48 2021 +0800

    Add feature A
  • --author:限制显示某位作者提交的记录,例如git log --author="John Doe"只显示John Doe的提交。
$ git log --author="John Doe"
commit e7bf9bc5a3b8168685ae81239debf9bd8878cd87 (HEAD -> master)
Author: John Doe <johndoe@example.com>
Date:   Thu Jan 21 09:30:48 2021 +0800

    Add feature A

commit 5f2741267e0c81e7ad8a81f5b11c45a8562bafd8
Author: John Doe <johndoe@example.com>
Date:   Tue Jan 19 14:02:03 2021 +0800

    Fix bug in feature B

1.3 查看变更内容

除了查看提交历史信息外,我们还可以查看每个提交中具体的变更内容,使用-p选项可以展示每个提交中的具体变更。

$ git log -p
commit e7bf9bc5a3b8168685ae81239debf9bd8878cd87 (HEAD -> master)
Author: John Doe <johndoe@example.com>
Date:   Thu Jan 21 09:30:48 2021 +0800

    Add feature A

diff --git a/file.txt b/file.txt
index 3f58d8b..5a4ef1a 100644
--- a/file.txt
+++ b/file.txt
@@ -1,3 +1,4 @@
 This is file.txt
+
 We are adding a new feature.

commit a3edc5b1ac5e700a4e2683b27c759d2de750cf74
Author: Jane Smith <janesmith@example.com>
Date:   Wed Jan 20 10:15:32 2021 +0800

    Refactor code for better performance

diff --git a/other_file.py b/other_file.py
index d1e4e49..421ef48 100644
--- a/other_file.py
+++ b/other_file.py
@@ -10,5 +10,5 @@ def main():
     # Some code here

-def new_func():
-    return "Hello, World!"
+def new_func(name):
+    return f"Hello, {name}"

1.4 美化输出

为了更好地阅读提交历史,我们可以使用--pretty选项来美化输出。一些常用的--pretty值包括:

  • %h:短哈希值
  • %an:作者名字
  • %ar:作者提交相对日期
  • %s:提交说明
$ git log --pretty=format:"%h - %an, %ar : %s"
e7bf9bc - John Doe, 1 hour ago : Add feature A
a3edc5b1 - Jane Smith, 1 day ago : Refactor code for better performance
5f274126 - John Doe, 2 days ago : Fix bug in feature B

2. git log高级用法

2.1 图形化展示

git log也支持图形化展示提交历史,使用--graph选项可以显示提交历史的图形表示,方便查看分支合并情况。

$ git log --graph
* commit e7bf9bc5a3b8168685ae81239debf9bd8878cd87 (HEAD -> master)
| Author: John Doe <johndoe@example.com>
| Date:   Thu Jan 21 09:30:48 2021 +0800
| 
|     Add feature A
|   
* commit a3edc5b1ac5e700a4e2683b27c759d2de750cf74
| Author: Jane Smith <janesmith@example.com>
| Date:   Wed Jan 20 10:15:32 2021 +0800
| 
|     Refactor code for better performance
|   
* commit 5f2741267e0c81e7ad8a81f5b11c45a8562bafd8
  Author: John Doe <johndoe@example.com>
  Date:   Tue Jan 19 14:02:03 2021 +0800

      Fix bug in feature B

2.2 查看文件变更

我们也可以使用--stat选项来查看每个提交中修改了哪些文件以及文件的改动情况。

$ git log --stat
commit e7bf9bc5a3b8168685ae81239debf9bd8878cd87 (HEAD -> master)
Author: John Doe <johndoe@example.com>
Date:   Thu Jan 21 09:30:48 2021 +0800

    Add feature A

 file.txt | 1 +
 1 file changed, 1 insertion(+)

commit a3edc5b1ac5e700a4e2683b27c759d2de750cf74
Author: Jane Smith <janesmith@example.com>
Date:   Wed Jan 20 10:15:32 2021 +0800

    Refactor code for better performance

 other_file.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5f2741267e0c81e7ad8a81f5b11c45a8562bafd8
Author: John Doe <johndoe@example.com>
Date:   Tue Jan 19 14:02:03 2021 +0800

    Fix bug in feature B

 file.txt | 1 -
 1 file changed, 1 deletion(-)

2.3 查看特定文件的提交历史

有时候我们只关心某个特定文件的提交历史,可以使用--follow选项来查看该文件的演变历史。

$ git log --follow file.txt
commit e7bf9bc5a3b8168685ae81239debf9bd8878cd87 (HEAD -> master)
Author: John Doe <johndoe@example.com>
Date:   Thu Jan 21 09:30:48 2021 +0800

    Add feature A

commit 5f2741267e0c81e7ad8a81f5b11c45a8562bafd8
Author: John Doe <johndoe@example.com>
Date:   Tue Jan 19 14:02:03 2021 +0800

    Fix bug in feature B

3. 总结

通过上面的介绍,我们了解了git log命令在Git版本控制中的重要性和基本用法。通过查看提交历史、限制日志范围、查看变更内容、美化输出、图形化展示等功能,我们可以更好地管理代码的版本演进。同时,了解高级用法如查看文件变更、查看特定文件的提交历史等,能够更精确地找到代码变更的轨迹,提高代码维护的效率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程