在Git的其他地方存储二进制文件

时间:2016-02-25 08:51:39

标签: git storage binaries

像很多人一样,我使用Git和二进制文件,现有解决方案似乎都不适用于我(git插件,如git-annex,git-lfs,git fat等等...,子模块/子树(它只是移动了其他地方的问题))。

所以我一直在考虑使用过滤器进行清洁和涂抹:

清洁:

#!/bin/bash
dest=/g/MO-F1/user/binary_folder
mkdir -p $dest
tmpfile=$(git rev-parse --show-toplevel)/tmp
cat > $tmpfile
sha=$(git hash-object --no-filters $tmpfile)
mv $tmpfile $dest/$sha
echo $sha

涂抹污渍:

#!/bin/bash 
source=/g/MO-F1/user/binary_folder
tmpfile=$(git rev-parse --show-toplevel)/tmp 
cat > $tmpfile 
sha=$(cat $tmpfile) 
cat $source/$sha 
rm $tmpfile

我修改了.gitattributes所以相应的二进制文件由过滤器管理(在我的情况下是.jpg和.png)

因此脚本可以工作,并且二进制文件存储在G:\ MO-F1 \ user \ binary_folder(一个组共享硬盘驱动器)中作为blob并且不会放在.git文件夹中! 但是当我克隆相应的存储库(并添加两个脚本并修改.gitattribute)时,即使我签出,我也无法访问这些blob而只能访问“指针”。

如何克隆存储库正确访问组共享中的文件?

感谢您的回复,我希望我已经足够清楚了

1 个答案:

答案 0 :(得分:0)

与编写脚本以将blob移动到另一个文件夹的努力相比,我更愿意将所有这些二进制文件保存在另一个git存储库中。通过使用另一个存储库,您可以通过git子模块或repo tool

进行管理