Ger*_*eri 5 git shell revision export repository
我有一个.ai在我的项目中版本化的文档文件,现在我想导出Git存储库为该文件保存的每个"快照".
任何批次/半自动解决方案?
我有很多提交,没有太多意图逐个导出它们.
Nev*_*nel 10
要将文件的所有修订导出到给定文件夹,可以在Bash中使用此循环:
for sha in `git rev-list HEAD -- path/to/file`; do
git show ${sha}:path/to/file > path/to/exportfolder/${sha}_doc.ai
done
Run Code Online (Sandbox Code Playgroud)
当然,您可以自定义此项.
将代码段复制到文本文件中,并替换path/to/file为要导出的文件的实际路径(在repo内).替换path/to/exportfolder为要将文件导出到的实际路径(导出文件夹必须存在).您也可以修改导出的文件名,在此版本中它使用格式"_doc.ai"; 如果要使用带空格的文件或路径名,请确保使用引号.
此版本将从当前签出的版本(HEAD)开始,并将历史记录转到可从HEAD祖先树中访问的所有版本.这意味着您应该查看要从中开始导出的最新修订.
很快,但是既然没有其他人想出什么:
mkdir snapshots
FILE=YourFile.ai
i=1
for COMMIT in $(git log --oneline $FILE | cut -f 1 -d " "); do
git checkout $COMMIT $FILE;
cp $FILE snapshots/$i-$COMMIT.ai;
(( i = i + 1 ))
done
Run Code Online (Sandbox Code Playgroud)
然后,目录snapshots包含文件的所有版本。名称由数字1..n组成,该数字随着每个版本的使用年限以及相应的提交以及文件扩展名的增加而增加.ai。
PS:不要忘记FILE在(git checkout HEAD $FILE)之后进行更新,也不要将文件夹快照添加到您的中repository。:)