如何将git日志导出到文本文件?


Answers:


117

您只需要禁用寻呼机。

git --no-pager log > log.txt

如果要格式化它看起来更好,可以使用git log的参数


21

你试过了git log > log.txt吗?


在您运行命令的当前工作目录中。
Hindol

它像一种魅力。尝试从status命令中保存信息时,它也起作用。
carloswm85

14
git log | clip 

复制到剪贴板,然后粘贴到文本文件


4
对于Windows用户而言,这似乎是解决直接写入文件所带来的Unix行尾问题的最简单方法。
MarredCheese

1
哇,好答案!+1
Arshad Ali


3

您可以通过以下方式使日志报告更加清晰

(1)设置最新提交次数(例如,在下面的命令中,我们获得最新提交50次,您可以将其更改为100、500等)

(2)在一行中显示长提交该命令是当前分支中的显示提交日志:

 git log --oneline -50 > log50_latest_commits.txt

(3)如果要在所有分支上显示提交

 git log --all --oneline -50 > log50_latest_commits.txt

生成的文本文件将位于当前目录。

参考:https : //git-scm.com/docs/git-log

(经过测试,git version 2.11.0.windows.1并且可以在许多其他版本的Git上运行)



2

这是与为我工作Git BashWindows 7

git log > /C/Users/<user-name>/Desktop/git-log.txt

<user-name>用您的替换user name

该文件将从Desktop您可以使用的位置导出到您的文件read

祝好运...


1

自问这个问题以来已经很久了,到那时,事情已经发展了。

但是,非常有趣的是,这里的所有答案都是正确的,但并未真正解决后命令错误常见。让我们尝试了解。。。。

谁知道这很容易。运行一个简单的命令

git log -p --all > git_log.txt

但是后来我误会了

> warning: inexact rename detection was skipped due to too many files.
> warning: you may want to set your diff.renameLimit variable to at least 2951 and retry the command.

而我们有一个问题。输出文件是半个演出。

我们只是想2018年上半年,我们能够与做--after--until

git log --pretty=format:"%ad - %an: %s" --after="2018-01-01" --until="2018-06-30" > git_log.txt

这对于我们的目的而言非常有效,并且很高兴知道我们可以根据需要更改格式。


0

就我而言,这很有帮助

git log --after="2020-3-20" --pretty=format:'Author : %an %nDate/Time : %aD%nCommit : %s' | paste > log.txt

这将产生:

作者:你的名字

日期/时间:提交日期时间

提交:提交消息


-1

这很简单。如果您没关系保存文件,则需要打开终端

cd {your git repository}
git log > your_file_name.txt

如果您需要特殊的目录,只需将所有路径写在右侧,像这样

cd {your git repository}
git log > /home/user/logs/your_file_name.txt

例如,此目录可以使用您的任何一种需求。我刚才写了这样的日志。

这个例子展示了如何通过bash在文件中写文本


1
与现有答案相同。
马特

也许可以,但是我现在就执行此操作,并向自己解释示例
Ilya Rogatkin

好。但是Stack Overflow不是您的个人博客。这是一本百科全书,并且此条目已被编写。
马特

感谢您的审核。我想为自2013年以来没有烦恼的问题提供答案。
Ilya Rogatkin '20年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.