我想要 git 中类似的东西Mercurial 的 Bigfiles 扩展(注:据我所知git 大文件,但这无关)。
基本上我想在我的 git 存储库中存储大型二进制文件,但我不想在进行克隆时获得大型二进制文件的每个版本。我只想在签出包含这些大文件的特定修订版时下载大型二进制文件。
以下是一些需要考虑的选项:
浅克隆: 你可以添加--depth <depth>
参数为git clone
获得存储库的浅克隆。例如如果<depth>
为 1,这意味着克隆将仅获取最近提交所需的文件。然而,此类存储库对您可以使用它们执行的操作有一些尴尬的限制,如git clone
手册页:
--depth
Create a shallow clone with a history truncated to the specified
number of revisions. A shallow repository has a number of
limitations (you cannot clone or fetch from it, nor push from nor
into it), but is adequate if you are only interested in the recent
history of a large project with a long history, and would want to
send in fixes as patches.
事实上,正如在这个线程这有些夸大其词了——在某些有用的情况下,从浅克隆进行推送仍然有效,并且可能适合您的工作流程。
Scott Chacon 的“git media”扩展:作者在回答中描述了这一点这个类似的问题在 github 上的 README 中:http://github.com/schacon/git-media .
浅层子模块:您可以将所有大文件保存在单独的 git 存储库中并将其添加为浅层子模块到你的主存储库。这样做的优点是您的代码不受浅克隆的限制,只有包含大文件的存储库。
还有很多方法可以通过添加钩子(例如)通过 git 钩子对大文件进行 rsync 来实现此目的,但我认为您有充分的理由希望首先将这些文件置于 git 的控制之下。
我希望这有一些帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)