git - 如何仅使用第一行输出 git log?

标签 git version-control formatting logging commit-message

我正在尝试自定义 git log 的格式。我希望所有提交都显示在一行中。每行应该只显示提交信息的第一行。
found out git log --pretty=short 应该可以解决问题,但在我的计算机上,它会像 git log 那样显示完整的日志(除了时间戳)。

此外,我尝试使用 placeholders as defined in the man page .不过,我找不到缩短日志消息的命令。我尝试了这一行 git log --pretty=format:'%h : %s' ,它显示了短散列 %h 和完整消息 %s 一行。

我在 Vista 上使用 git 版本 1.7.3.1.msysgit.0


也许这与我编写提交消息的方式有关。这是一个例子:

Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.

因此,对于给出的示例,我只想输出 添加了一些功能。 前面加上缩短的哈希。

最佳答案

你试过了吗?

git log --oneline 

git log --pretty=oneline --abbrev-commit的别名,显示“short sha”和“short description”,例如:

9bee8857 Write more code
831fdd6e Write some code Second line of message

问题是您在提交消息的第一行之后缺少一个空行。上面的命令通常对我有用,但我只是在没有空第二行的提交上进行了测试。我得到了和你一样的结果:整条消息在一行中。

空的第二行是 git 提交消息中的标准。您看到的行为可能是故意实现的。

提交信息的第一行是一个简短的描述。如果你不能在一行中创建它,你可以使用多个,但 git 将第一个空行之前的所有内容视为“简短描述”。 oneline 打印整个简短的描述,所以你所有的 3 行。

关于git - 如何仅使用第一行输出 git log?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4479225/

相关文章:

git - 如何关闭vscode中的git diff面板?

git - 如何使用我的公钥和私钥而不是用户名和密码从 Git Bash 自动对 GitHub 进行身份验证?

git checkout 分支但保留在 master 中

svn - 有效的工作流程允许设计人员访问 SVN 存储库的部分内容

mysql - MySQL 格式化日期的最佳方式是什么

c++ - Visual Studio 2017 C++ : Missing includes on cloned git repository

version-control - 如何在 mercurial 中将一堆更改作为单个更改

主文件和 pull 请求中更改的所有文件之间的 Git diff

JavaFX 在文本字段上按模式设置输入过滤器

date - d3.min.js 给出 Uncaught TypeError : n. apply 不是函数