当然,像Git,(Mercurial,SVN等)这样的源代码控制工具可以很好地管理源代码.但我想知道,这些工具在用于存储PhotoShop PSD和Illustrator AI文件等文件副本时是否为开发人员提供了任何优势?将这些工具与这些文件一起使用是否有意义?我是否会在存储库中存储的数量少于所有这些文件的文件大小总和?即使这些文件的文件格式只是机器可读的,我希望对于这样的应用程序,特别是在处理矢量而不是光栅图形时,这些文件中的一小部分会改变,其余大部分将保持不变.
感谢您的见解.
Git给了我一个可爱的圣诞礼物......我正在尝试git push一堆提交,比如6 GB.我收到以下错误消息:
-Counting objects: 525, done.
Delta compression using up to 24 threads.
Compressing objects: 100% (474/474), done.
fatal: pack has bad object at offset 3453162391: inflate returned -5
error: pack-objects died of signal 13
error: failed to push some refs to ....git
Run Code Online (Sandbox Code Playgroud)
这是什么意思,它是如何修复的?从谷歌我可以看出它与我试图推动的大小有关.
这是在写作时发生的.
使用git-lfs/1.1.0(GitHub; linux 386;转1.5.1),文件大小4.3G.
git init
git lfs install
git lfs track *.nnex
Run Code Online (Sandbox Code Playgroud)
.gitattributes: *.nnex filter=lfs diff=lfs merge=lfs -text
git add evernote-backup.nnex: fatal: Cannot handle files this big
git lfs ls-files: Git can't resolve ref: "HEAD"
git lfs track: Listing tracked paths evernote-backup.nnex .gitattributes)
git lfs env:
WARNING: Reading LFS config from ".gitconfig", not ".lfsconfig". Rename to ".lfsconfig" before Git LFS v2.0 to remove this warning.
git-lfs/1.1.0 (GitHub; linux 386; go 1.5.1)
git version 2.1.4
LocalWorkingDir=/home/vitaly
LocalGitDir=/home/vitaly/.git …Run Code Online (Sandbox Code Playgroud) 我运行GitLab实例,并希望允许我的用户上传几乎任何大小的文件.
众所周知,git仍然存在大文件问题.我知道通过将文件存储在其他地方并仅对元数据进行版本控制来解决此问题的方法,例如git-annex,git-media和git-fat.这些都集成到GitLab中,还是很容易实现?
我正在从Mercurial将一些个人项目存储库迁移到Git.其中一个项目依赖于一些不变的,但是大型的shapefile和SQLite数据库.这些文件非常重要,需要存放在repo中,这样任何签出项目的人都可以访问它们.使用Mercurial,这很容易处理; 我使用了largefiles扩展.largefiles通过不尝试分析大于X的文件的内容来自动处理文件添加/更改.也就是说,我能做到hg addremove,一切都会奏效.
Git,就像Mercurial一样,不是为追踪大文件而设计的.但是,我没有看到类似的扩展.我查看了git-annex,但似乎我需要手动跟踪文件(即,我不能随意做git add -A).另外,如果我正确读到这一点,git-annex似乎在一个完全独立的回购中维护大文件.我想将当前仓库中的大文件保存在他们当前所在的目录中.
人们如何处理这种情况?当然,有很多项目需要跟踪项目运作中不可或缺的大型文件.git-annex会完成这个,还是需要其他扩展?
我现在在存储图像方面遇到了困境:
我只想在请求非常少的情况下检查它们。有了这个,我不喜欢我的 git 存储库被图像弄得乱七八糟,因为我有几兆字节大小的图像。
目前,我正在做的是将除二进制文件、目标文件和图像之外的几乎所有内容都包含到我的 git 存储库中。
然后每周,我都会对所有内容进行完整的 zip 备份。
我想问的是,是否有办法将文件放入 git 而不进行版本控制?
我知道它违背了 git 的目的,但是可以通过这种方式控制 git repo 的大小。
为了显示:
pic1.jpg。我想把它放到 git 中。pic1.jpg为另一个图像但具有相同的文件名,它只会覆盖pic1.jpg而不进行版本备份。这听起来可能很危险,但是从我从 git 中学到的是,如果您将文件提交到其中,它将永远留在那里。
我想到了另一个解决方案:项目将被完全压缩并放置在一个保管箱中,项目的新开发人员将从保管箱中获取它,提取,执行 git fetch,然后合并。
我希望有人可以分享他们在这方面的经验/专业知识。
我们有一个巨大的多 GB git 存储库,主要是二进制对象。
克隆需要几天时间。
实际的主分支(没有历史记录)只有大约 20MB,所以我想,深度为 1 的 git 克隆是解决问题的方法。
然而,现在我需要将某人的更新拉到主服务器(我们没有分支),当我拉时,没有深度选项/参数,所以它下载了全部 2GB。
有没有办法只拉master而不拉历史?
我是 git noob(我只使用乌龟 git),但我是 SVN、CVS 等方面的专家。
注1:我们曾经使用SVN,它没有这样的问题,但我们相当非技术的IT总监认为将git强加给整个公司会很好,即使是那些主要使用二进制媒体、flash、js等的公司。
注2:我看到这篇文章:Pull update with git after cloned with --depth 1但我不明白它。
我的公司正在考虑实施Git,但我对于设置它的最佳方式有疑问.我们有3个站点,并计划使用Gerrit2来创建镜像.我们的存储库大约2GB,我们想开始添加二进制文件.我担心空间使用情况.我不介意所有版本的二进制文件都存储在少数几个位置,但我想确保它们不会陷入克隆操作.
我知道Git使用硬链接,但我认为只有在每个挂载上放置一个存储库副本时才能使用.是否有更好的选择,如果有,有什么权衡?我正在看的选项是"--shared"和"--reference".
我已经使用cvs2git(cvs2svn)迁移了旧的cvs存储库。现在生成的转储文件大了72GB,由于内存不足错误,我尝试通过git fast-import导入转储的尝试始终失败:
致命:内存不足,malloc失败(尝试分配6196691字节)
快速导入:将崩溃报告转储到fast_import_crash_13097
错误:git-fast-import因信号11死亡
因此,我的系统具有32GB RAM和50GB交换空间。我在具有Git 1.8.3.4(gcc44,python2.6.8,cvs2svn2.4.0)的Red Hat 5.3上运行导入。我也尝试过限制堆栈大小和文件描述符,但是内存错误仍然存在。
有人知道吗?