3

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

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

git archive -o export iterateOverAllCommits EXPORTS_TO(第一次提交)archive0001.zip,(第二次提交)archive0002.zip…</p>

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

4

1 回答 1

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创建由来自 的提交哈希指定的提交的 zip 存档rev-list

两者rev-list都有archive很多选项,可以帮助您进一步完善档案以包含您只需要的信息。

使用 printf您可以轻松地修改上面的内容以对计数进行零填充。

于 2013-01-25T23:10:39.527 回答