如何将git中的每个提交导出到自己编号的存档中?

时间:2013-01-25 22:16:53

标签: git

我开始使用git进行二进制文件的版本控制(.ai& .indd)。我想知道我将如何导出其中一个文件(或整个回购)的每个提交,以便之后我会有一个图像序列,我可以用来制作像这样的moxie doxy这样的视频从文件保存为字体(n),字体(n ++)......。

所以我想我想要实现的是这样的:

Git archive -o export iterateOverAllCommits EXPORTS_TO(first commit)archive0001.zip,(second commit)archive0002.zip ...

之后,扩展/准备视频文件没有问题。

1 个答案:

答案 0 :(得分:1)

通过将git archivegit rev-list与bash相结合,您可以这样做。

COUNT=0
for commit in `git rev-list --reverse HEAD`; do
  git archive $commit --format=zip -o archive$COUNT.zip
  COUNT=$((COUNT + 1))
done

git rev-list --reverse HEAD打印出从第一次提交开始到HEAD结束的提交哈希值。

git archive $commit --format=zip -o archive$COUNT.zip创建一个由rev-list提交哈希指定的提交的zip存档。

rev-listarchive都有很多选项,可以帮助您进一步优化档案以包含您只需要的信息。

Using printf您可以轻松修改上述内容,以便对计数进行零填充。