如何为git命令赋予不同的值并将输出存储在每个值的多个文件中?

时间:2017-04-24 16:03:20

标签: git bash shell github git-bash

我正在尝试为我在GitHub上获得的每个diff提交生成一个JSON文件。 为此,我将“SHA”号存储在如下变量中:

$var=$(git log --pretty=format:'%h')

然后我想做一个for循环,我说为var中存储的每个值执行命令git show并将输出存储在一个文件中(例如commit1.json .... Commit100.json等...) (git show $var > Commits.json

我是shell中的新手,所以我不知道如何实现这一点。 伙计们,我真的指望你的帮助。

生成文件时如何摆脱特殊字符:revision_2017-03-20T140150+0100

因为后来我试图打开它们并通过它们解析,因为我不能打开它们。

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

git log --pretty=format:'%h' | while read revision; do git show $revision > revision_"$revision".json; done

如果您想使用其他内容(例如作者日期)来命名文件,您可以执行以下操作:

git log --pretty=format:'%h' | while read revision do date=$( git show --summary --pretty=%aI $revision | head -n 1) git show $revision > revision_"$date".json done