git-gc相关内容

如何跳过“松散对象"运行“git gui"时弹出

当我运行“git gui"时,我得到一个弹出窗口,上面写着 该存储库当前大约有 1500 个松散对象. 然后它建议压缩数据库.我以前做过这个,它将松散的对象减少到大约 250 个,但这并没有抑制弹出窗口.再次压缩不会改变松散对象的数量. 当我们从 Perforce 过渡时,我们当前的工作流程需要大量使用“rebase",而 Perforce 仍然是规范的 SCM.一旦 Git 成为规 ..
发布时间:2022-01-16 09:46:22 其他开发

有没有办法限制“git gc"的内存量?用途?

我在共享主机上托管一个 git 存储库.我的 repo 中必然有几个非常大的文件,每次我尝试在 repo 上运行“git gc"时,我的进程都会因使用过多内存而被共享托管提供商杀死.有没有办法限制 git gc 可以消耗的内存量?我希望它可以用内存来换取速度,并且只需要花更长的时间来完成它的工作. 解决方案 是的,请查看 git config 的帮助页面并查看 pack.*选项,特别是 p ..
发布时间:2021-12-21 10:01:34 其他开发

如何从 git 存储库中删除旧历史?

恐怕我找不到与此特定场景相似的内容. 我有一个历史悠久的 git 存储库:500 多个分支,500 多个标签,可以追溯到 2007 年年中.它包含约 19,500 次提交.我们希望删除 2010 年 1 月 1 日之前的所有历史记录,以使其更小且更易于处理(我们将在存档存储库中保留一份完整的历史记录副本). 我知道我想要成为新存储库根的提交.但是,我无法找出正确的 git mojo 来 ..
发布时间:2021-12-06 09:23:04 其他开发

git重置后,无法删除的提交未删除

我有一个小型仓库,其中有几个提交: * a0fc4f8(HEAD-> testbranch)添加了file.txt* e6e6a8b(master)你好世界* f308f53使其回显* f705657添加了问好* 08a2de3(标签:初始)初始 也: $ git状态在分支测试分支上无需提交,工作目录干净 我无法理解以下行为.在这种状态下,我运行: $ git reset init ..
发布时间:2021-05-10 20:43:55 其他开发

为什么在回购变得更大时git操作会变慢

我知道git会在repo变大时变慢. 但是为什么呢? 由于git将文件存储为单独的目录和 .git 下的文件,因此我无法找出操作速度变慢的原因.让我们看一下 commit 操作.最近,我克隆了Webkit存储库,并从master分支,然后将 2k 文件提交到该分支.但是我觉得它比我的小仓库要慢. 因为我还没有阅读过git源代码,所以我猜想提交操作会危及到将文件存储到磁盘,插入提交日志,更新索 ..
发布时间:2020-11-15 05:10:40 其他开发

如何解决这些Git GC问题?

我经常遇到一个问题,我的git repo(我认为?)将决定是否需要对其进行垃圾收集.此过程耗时超过半小时,然后将在每次拉/推操作中触发. 手动运行Git GC需要一个半小时,但似乎无法解决该问题.我发现的唯一解决方案是删除我的存储库,然后重新克隆,由于种种原因,这是次优的选择. 我的git GC操作可能很慢,因为我已经为git设置了一些内存限制,以防止它在git GC操作上崩溃,就像以 ..
发布时间:2020-11-15 03:22:35 其他开发

git gc和git repack -ad之间有什么区别吗? git prune`?

git gc和git repack -ad; git prune之间是否有区别? 如果是,git gc将执行哪些其他步骤(反之亦然)? 在空间优化或安全性方面,哪个更好使用? 解决方案 git gc和git repack -ad; git prune之间是否有区别? 区别在于,默认情况下git gc对于需要执行哪些内务处理任务非常保守.例如,除非存储库中的松散对象数量超过某个 ..
发布时间:2020-11-14 22:25:20 其他开发

git prune何时确切地成为对象:为什么"git gc"被删除?不删除提交?

我正在上一门git课程,我想提一提,丢失的裁判直到运行git gc时才真正丢失.但是验证这一点,我发现事实并非如此.即使运行git gc --prune=all --aggressive之后,丢失的引用仍然存在. 很明显,我误解了一些东西.在说出课程中不正确的内容之前,我想弄清我的事实!这是一个示例脚本,说明了效果: #!/bin/bash git init # add 10 ..
发布时间:2020-11-14 21:56:27 其他开发

git gc机器上的配额

简单的问题,我试图在带有配额的机器上运行 git gc 。 Pre-gc,我大约有18GB的使用量,几乎所有这些都是我克隆的git存储库。我的磁盘限制是25GB。在 git gc 操作期间,足够的临时文件被写入磁盘以达到我的限制,从而导致 git gc 操作我可以在失败的操作后删除 .git / objects / pack / tmp_pack _ * 并获得回到18GB的使用,但我真的很想完成 ..
发布时间:2018-04-27 15:27:03 其他开发

强制Remote Repo使用Git压缩(GC)

我使用Git来版本化一系列二进制文件。它们压缩的非常好,但是当我推送给他们时,我的中央回购似乎并没有压缩。他们吃了一大笔我的配额,所以我想看看是否有办法强制远程回购做GC。 这是可能?我正在研究项目储物柜,所以我不认为我有SSH访问权限和GC回购我。有任何想法吗?感谢。 解决方案 如果您自己无法运行 git gc 你将不得不欺骗它自动运行。你不会有那么完全的控制权,但你至少应该能够得 ..
发布时间:2018-04-26 19:26:36 其他开发

停止git gc - 侵略,这是一件坏事吗?

我在一个非常大的repo(apx 100 gb)上运行了 git gc --aggressive 。它从两天前开始运行,并且在几个小时的时间里,它一直停留在:“压缩对象:99%(76496/76777)” 如果我 Ctrl - C 过程中,会产生什么后果?我的回购将无法使用?我的直觉说不,但我想要一些意见。谢谢! 解决方案 git应该始终安全,不会因此而中断。不过,如果您担心,我建议 ..
发布时间:2018-04-26 19:23:34 其他开发

Git gc使用过多的内存,无法完成

最终更新和修复:这里的解决方案结果是两件事情的结合:使用Windows Git而不是Cygwin Git作为 Graham Borland 建议,以及Git配置设置 pack.threads = 1 和 gc.aggressiveWindow = 150 。 我有一个大的本地Git仓库,SVN仓库的一个 git svn clone ,大约有40,000个提交。我试图在这个版本库上运行 git ..
发布时间:2018-04-26 14:12:06 其他开发

导致git gc --auto的所有命令列表

是否存在导致 git gc --auto 运行的命令的确切列表? git-gc(1)手册页只是说明: - auto 使用此选项,git gc会检查是否需要进行任何管家操作;如果没有,它会退出而不执行任何工作。 某些git命令在执行可能会产生许多松散对象的操作后运行 git gc --auto 。 (强调增加) 我正在组织从SVN到Git的大型迁移过程。绝大多数用户将使用Wi ..
发布时间:2018-04-26 13:51:50 其他开发

我怎样才能在Git远程仓库上触发垃圾收集?

正如我们所知,我们可以定期运行 git gc 来打包 .git / objects 下的对象。 myproj.git / objects / code>;每个提交似乎都会在那里创建一个新文件。 如何打包许多文件? (我的意思是在远程中央裸仓库上,而不是在本地克隆仓库上)。在提交完成后根据需要运行gc。在git-gc和git-config的手册页中查看gc.auto的文档。 然而,远程仓 ..
发布时间:2018-04-26 13:43:28 其他开发

你应该多久使用一次git-gc?

你应该多久使用一次git-gc? 手册页简单地说: 鼓励用户定期在每个存储库中运行此任务以维护好的磁盘空间利用率和良好的操作性能。 是否有一些命令可以获得一些对象数量来确定是否应该使用gc? 解决方案 这主要取决于存储库的使用量。一个用户每天检查一次,一个分支/合并/等操作每周一次,你可能不需要每年运行一次以上。 用几十名开发人员在数十个项目中工作,每天检查2-3次 ..
发布时间:2018-04-26 13:34:14 其他开发