Git log --pretty = oneline似乎省略了前2次提交

时间:2015-01-25 12:39:13

标签: macos git

这可能是一个错误,但我以前从未见过Git中的错误,我在intertubes上找不到任何关于这个问题的提及,所以现在我假设用户愚蠢。

我使用Git很多,所以我设置了一个别名来显示git日志的鸟瞰图:alias gl='git log --pretty=oneline --abbrev-commit'。因此,当我在不同分支之间玩杂耍时,我会经常键入gl来提取日志,然后q退出。我觉得这很方便。

但今天我注意到一些奇怪的事情:看起来最近的两次提交被排除在此视图之外。以下是gl对我的一个活动项目的示例输出:

b6e802d Location autocomplete; major refactoring and cleanup
d0cecdf Admin can download CSV of all users
0149ea2 Changed some verbiage on terms, privacy and profile page
5c0bdff Changed the link for find coach to go to the coaches page

但是如果我将gl输出到像gl > gitlog.txt这样的文件,前几行是:

5e57f97 City autocomplete supported in mobile navbar search
df43a02 Add firstname & lastname to admin's users CSV download
b6e802d Location autocomplete; major refactoring and cleanup
d0cecdf Admin can download CSV of all users
0149ea2 Changed some verbiage on terms, privacy and profile page
5c0bdff Changed the link for find coach to go to the coaches page

请注意,后者中的前2行不存在于前者中。

如果我打开正常的git log,所有提交都会按预期显示。

编辑:我刚刚发现我现在可以通过管道(冗余地,我认为)更少来解决这个问题:gl | less按预期显示所有提交。

我从来没有注意到这种情况发生在现在(即过去几周);我最近更新到更新的Git版本,可能是相关的吗?还有其他人看到过这种情况吗?我该怎么做才能弄清楚这里发生了什么?我甚至不知道从哪里开始。这看起来像个bug吗?

编号:

  • Mac OSX 10.9.5
  • Git 2.2.1
  • 其他任何数字是否相关?

感谢阅读!

2 个答案:

答案 0 :(得分:1)

这不是一个完整的答案,但我只是做了几个观察:

  • 这只发生在一个特定的存储库中。 git日志适用于其他项目。
  • 我在最后一两天添加了几个提交,并且所有这些提交都被排除在外。所以,并不是最新的2次提交被隐藏了,而在某个被排除后的每次提交都被隐藏了。

隐藏的最早提交从以下行开始:

Add firstname & lastname to admin's users CSV download

鉴于错误的行为,我认为Git的日志打印输出存在一个错误,如果提交消息包含&,则会导致某些提交被隐藏。因此,对我来说,现在的教训是不要在Git提交消息中使用&

答案 1 :(得分:1)

仅重现了旧git版本(2.6.x)发生的这种行为,但我对其进行了更新(2.19.1),然后对其进行了修复。