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

问题描述:

我想为我的GitHub上的每个差异提交生成一个JSON文件。 为了做到这一点我存储在这样的varible我“SHA”号:如何为git命令赋予不同的值并将输出存储在每个值的多个文件中?

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

然后我想要做的仿羔皮呢,在这里我说了保存在var中的每个值执行命令git的节目,将输出存储在一个文件中,例如(commit1.json .... Commit100.json等..)(git show $var > Commits.json

我是shell中的新手,所以我不知道如何做到这一点。 请家伙我真的在指望你的帮助。

如何摆脱特殊caracters的时候我产生我的文件:revision_2017-03-20T140150+0100

因为后来我试图打开他们并通过他们,因为解析我无法打开它们的特殊carracteres。

在此先感谢您的帮助

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

+0

谢谢你的回答,这工作很好。但我想要在不同的json文件中提交每个提交的内容。并非所有人都在一个? 为$ VAR的每个值在那里我有我所有的SHA产生一个JSON文件 混帐显示变种[1] >> commit1.json 混帐显示变种[100] >> commit100.json ; .. 。 。 感谢您的帮助 –

+0

更正原有回复 – eftshift0

+0

谢谢老兄!它正在工作耶! –