git log命令无法显示HEAD信息

3

我正在创建一个git仓库,并使用git commit将文件添加到仓库中。 提交后在git log中,我可以看到提交信息,但无法看到HEAD信息。以下是我遵循的步骤:

$ git config --global user.name "abc"
$ git config --global user.mail "abc@abc.com"
$ git init
  Initialized empty Git repository in /home/aishwarya/github.com/temp/.git/
$ touch a.txt
$ git add a.txt

$ git commit --message "first commit in NonBareRepo"
  [master (root-commit) 6d46130] first commit in NonBareRepo
   1 file changed, 0 insertions(+), 0 deletions(-)
   create mode 100644 a.txt
$ git log
  commit 6d46130416eef0104408d575d8d4958457fe1dab
  Author: abc <abc@abc.com>
  Date:   Mon Feb 3 22:07:18 2020 +0530

      first commit in NonBareRepo

在另一台机器上,按照相同的步骤创建了仓库后,我可以看到如下的git log输出(HEAD指向主分支):
$ git log
commit 7ba4781ddee49a3636ee700fe057c3a372502460 (HEAD -> master)
Author: abc <abc@abc.com>
Date:   Mon Feb 3 22:01:11 2020 +0530

    first commit in NonBareRepo

请告诉我如果我漏掉了什么。谢谢。
1个回答

5
你可能在这里有不同的配置条目。请参见log.decorate
但无论如何,在日志输出中显式地提到提交哈希后的分支/标签信息,请使用标志。
# to force it
git log --decorate

# to prevent it
git log --no-decorate

正如torek在下面的评论中指出的那样,阈值更精确地是1.7.2版本,其中log.decorate一起出现。在此之前,根本没有装饰,自那时起,默认为auto(表示默认情况下已打开)。

(我的意思是,我已经打开了它,但我在任何.config文件中都没有看到它 :)) - mimikrija
1
据我所知,如果不存在,则假定为“true”。您是否尝试从未显示的机器上运行“git config -l”命令?也许可以通过检测“log.decorate false”来找到问题所在。 - Romain Valeri
4
在Git版本1.7.2及之后的版本中,默认情况下log.decorate设置为auto(或者是true? 或其他什么...)。如果你使用的机器上的Git版本为1.7.1或更早,那么你根本没有log.decorate。(编辑:事实上,我不确定当时它是否是"auto"。从Git 2.13的一个提交中可以看出,在2.13中修复了默认"auto"模式的错误,但何时变成"auto"则不太清楚。) - torek
1
也许OP正在使用mingw64(我也是,版本为git 2.8.3.windows.1,问题仍然存在)。没有log.decorate文件,但--decorate有效。编辑:如果您遇到OP的问题,请更新Windows版Git。现在可以正常工作了。 - AndJM
感谢 @AndJM 的反馈,现在在足够新的 mingw64 版本上确实运行良好。 - Romain Valeri
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接