我按顺序进行 2 次提交,根据我切换到的提交,git log
它会给出不同的输出。
我做的工作目录中有一个文件main.txt
:
$ git add main.txt
$ git commit -m 'first commit'
然后我更改内容main.txt
并再次提交:
$ git add main.txt
$ git commit -m 'second commit'
现在,据我了解,我有 2 次提交的历史记录。如果你git log
现在这样做,它真的会打印 2 个提交并HEAD
指向我当前所在的提交:
$ git log
commit 43d08e5d2a2508d913ff4550ac5c6b51b190603e (HEAD -> master)
Author: User <user@company.com>
Date: Thu Dec 19 16:24:07 2019 +0300
second commit
commit 8515c37a95ed127b27f8637d0ee5a1de887281e3
Author: User <user@company.com>
Date: Thu Dec 19 16:22:35 2019 +0300
first commit
但是,如果您切换到上一个提交(第一次提交):
$ git checkout 8515c37a95ed12
现在输出git log
将只包含 1 个提交:
$ git log
commit 8515c37a95ed127b27f8637d0ee5a1de887281e3 (HEAD)
Author: User <user@company.com>
Date: Thu Dec 19 16:22:35 2019 +0300
first commit
虽然在这里我也希望看到 2 个提交
应该是这样吗?如果是这样,并且git log
它确实没有显示所有提交和所有历史记录,那么无论我正在进行什么提交,我如何找出答案?
是的,应该是这样的。不带参数的命令
git log
显示提交列表,从当前提交开始,即 指向的HEAD
提交,然后是其祖先。当你运行时git checkout 8515c37a95ed12
,你移动HEAD
到了这个提交,因此你看不到它之后的提交。如果您想查看所有分支的整个历史记录,请运行
git log --all
或git log --all --graph
.如果您想将自己限制在某个分支上,请运行
git log --first-parent <branch_name>
.