Git日志输出到日志文件

88

我正在一门大学课程的作业中使用Git作为版本控制。我开发的游戏已经完成。然而,除了提交作业之外,我还想提交Git日志,以有效地展示我在开发期间的进度。

我已经尝试过以下方法:

git log --stat > log.log

但是它基本上只给我提供了非常难以阅读的东西,有什么命令可以让我得到漂亮的格式?


1
你希望输出重点关注什么? 提交信息? 分支? 日期? 文件? 更改? - GoZoner
“非常难读的东西”是什么意思?以何种方式难读? - Peter Mortensen
3个回答

140

我建议使用不同于默认格式的其他格式。我通常选择带有图表的概要,但仅一个一行的摘要通常也可以应付。

选项1:带有图表的一行摘要

git log --pretty=format:'%h : %s' --graph > log.log

结果如下:

* 2d3acf9 : ignore errors from SIGCHLD on trap
*   5e3ee11 : Merge branch 'master' of git://github.com/dustin/grit
|\
| * 420eac9 : Added a method for getting the current branch.
* | 30e367c : timeout code and tests
* | 5a09431 : add timeout protection to grit
* | e1193f8 : support for heads with slashes in them
|/
* d6016bc : require time for xmlschema

选项2: 没有图表的一行摘要

git log --pretty=format:'%h was %an, %ar, message: %s' > log.log

结果为:

a6b444f was Scott Chacon, 5 days ago, message: dammit, this is the second time this has re
49d77f7 was Scott Chacon, 8 days ago, message: modified index to create refs/heads if it i
9764edd was Hans Engel, 11 days ago, message: Add diff-lcs dependency
e1ba1e3 was Hans Engel, 11 days ago, message: Add dependency for Open4
0f87b4d was Scott Chacon, 12 days ago, message: merged recent changes

您可以在此处的文档找到更多格式选项。


我正在收到“使用'--'来将路径与修订版本分开”的提示。 - Marian Klühspies
1
可以在 https://git-scm.com/docs/git-log 找到格式占位符。搜索子标题“pretty formats”。 - Eric Majerus
FYI:我知道这个答案很旧,但“docs”链接已经失效了。我肯定不会像其他人对我所做的那样:由于链接在以后的时间中变得无用而在3、4或5年后对我的答案进行负面评价。我已经提交了一个编辑来指向git-scm.com(https://git-scm.com/docs/pretty-formats)FYI。 - Erick Brown
无效的对象名称 %h - Coded Container

16

尝试运行下面这行命令:

git log > log.txt


1
这是基本答案,我所需要的一切。 - Jonathan
2
仅使用 git log 命令将在控制台上显示标签和分支(包括远程分支)。但是,使用 git log > log.txt 命令将不会包含这些标签/分支信息。我真的想知道如何使它们相同(即获取带有标签/分支信息的输出)。 - Robin Hsu

7
git log --oneline --decorate > log.txt

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