我希望将一些二进制文件(文档、可执行二进制文件、图像等)保存在git-annex中,然后将它们作为git-submodules包含在几个项目中。我认为这将允许我跟踪这些大文件的正确版本的变化,保持旧项目链接到旧版本和新项目到新版本。
因此,我为我的大文件做了以下回复:
mkdir annexedrepo
cd annexedrepo
cp big_files annexedrepo/
git init
git annex init
git annex add .然后转到我的项目回购,并将它们作为子模块添加。
cd ../otherrepo
mkdir data
git submodule add ../annexedrepo data/annexed我想如果这些只是作为符号链接到正确的文件在另一个回购。但我想如果我能照我需要的复印一下就够了:
git annex get data/annexed这个文件复制过来了--我可以在otherrepo/.git/module/data/annexed/objects/中看到它们。但是当我这么做的时候,附件中的文件只是死了的符号链接。我可以在ls data/annexed/上列出,但没人在家。
我是想做错事吗?有办法解决这个问题吗?这些bug是git-submodule还是git-annex中的bug?谢谢你的帮忙!
发布于 2013-09-27 11:13:19
我使用相同的源树结构,也尝试使用git-annex,但遇到了同样的问题。我发现git-fat扩展可以代替git-annex使用,而且没有这样的问题。所以我的源树是这样的:
/project
.git
.gitmodules
...
<project files and folders>
...
submodule
.git
.gitattributes
.gitfat
...
<binary files>
...复制这样一个项目
git clone git://... project
cd project
git submodule init
git submodule update
cd submodule
git fat init
git fat pullgit-fat使用rsync推/拉文件。看更多关于吉特脂肪的信息。。
发布于 2013-08-14 17:26:32
好吧,稍微摆弄一下,我找到了一个解决办法。不过,我还是想看看更好的东西。为子孙后代发布这篇文章,但我希望找到一个更好的解决方案。
在data/annexed中,有一个文件.git,它包含对../../.git/module/data/annexed/的引用。我删除了这个文件,并将其替换为指向同一个位置的符号链接。我现在可以从../annexedrepo/内部访问data/annexed,并且我的文件在正确的版本上。我有点担心这件事会给未来带来麻烦.
https://stackoverflow.com/questions/18238140
复制相似问题