偶尔我会把一个DVD-rip放到一个网站项目中,然后不小心git commit -a -m ...,然后,zap,回购邮件被2.2演出臃肿.下次我做了一些编辑,删除了视频文件,并提交了所有内容,但是历史记录中的压缩文件仍然存储在存储库中.
我知道我可以从那些提交开始分支并将一个分支重新绑定到另一个分支.但是我应该怎么做才能将2个提交合并在一起,以便大文件没有在历史记录中显示并在垃圾收集过程中被清除?
是否有可能只在Git和Mercurial中克隆一个分支(或来自给定的提交)?我的意思是,我想要克隆一个中央回购,但由于它很庞大,我只想获得它的一部分,并且仍能够回馈我的变化.可能吗?比如,我只想从Tag 130开始或类似的东西?
如果是这样,怎么样?
我已经看到git gc --aggressive --prune并git repack -a -d --depth=250 --window=250建议减少本地.git文件夹的大小,其中不需要长的本地历史记录.从我的阅读看起来似乎git-repack是首选,有人可以对此发表评论吗?
我真正想知道的是如何对价值决定depth和window.我使用git来提交,推送,拉取和合并,我不知道delta链或对象窗口是什么.
我有点困惑,如何彻底清理我的垃圾......
git count-objects -v -H
warning: garbage found: ./objects/pack/gc_7174754666377259454.idx_tmp
warning: garbage found: ./objects/pack/gc_7174754666377259454.pack_tmp
warning: garbage found: ./objects/pack/pack-f5b13f50fe2e4d773028c51f547822e6f2fe720b.bitmap
count: 0
size: 0 bytes
in-pack: 32986
packs: 1
size-pack: 44.14 MiB
prune-packable: 0
garbage: 3
size-garbage: 41.20 MiB
Run Code Online (Sandbox Code Playgroud)
这对我来说意味着我的回购中有41兆的垃圾?
git gc --prune = now --aggressive
Counting objects: 32986, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (31610/31610), done.
Writing objects: 100% (32986/32986), done.
Total 32986 (delta 23902), reused 9080 (delta 0)
Run Code Online (Sandbox Code Playgroud)
当我再次运行计数对象时,我仍然具有相同的输出
size-garbage: 41.20 MiB
Run Code Online (Sandbox Code Playgroud)
我只是手动删除垃圾文件?至少有一个是非常丰满的.
12/02/2014 02:06 PM …Run Code Online (Sandbox Code Playgroud) 标题基本上.
我只是混一些事情与我.gitignore和我的臃肿.gitDIR到> 100MB(它与总喜欢100commits回购..).
所以我是一个懒惰的人,并想知道是否有可能删除我的历史.我不想改变某些东西或东西,我只是想缩小我的.git目录尺寸.
当没有办法做到这一点时,我只是让git clone --depth 1我的回购获得同样的效果.
我有一个2GB的Git裸仓库,有30000次提交.不幸的是,我多年来已经提前添加了一些大文件,我现在已经使用了这些文件git filter-branch- 请参阅此链接.识别罪犯 - 参见例如此链接
我也清除了许多旧的"测试尝试"分支使用git branch -D BRANCH-NAME.现在好玩的开始了:-)
在我的裸仓库中似乎git gc --aggressive --prune=yes不会减少裸仓库的目录大小,但如果我克隆裸仓库并运行,git gc --agressive --prune=yes那么我的目录大小将下降到50 MB(这真的很棒).
我也尝试过这个好主意,但它没有显示SHAs或任何其他导致切割刀的位置.
我可以真正使用你的输入安全地以系统的方式摆脱我的裸仓库存储.
启动后在后台发生了什么,
git gc git prune输出git gc:
Counting objects: 945490, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (334718/334718), done.
Writing objects: 100% (945490/945490), done.
Total 945490 (delta 483105), reused 944529 (delta 482309)
Checking connectivity: 948048, done.
Run Code Online (Sandbox Code Playgroud)
git prune的输出:
Checking connectivity: 945490, done.
Run Code Online (Sandbox Code Playgroud)
这两个选项有什么区别?
谢谢
在 Git 中,有一个命令git clone --depth=<depth>可以仅检索特定长度的历史数据。还有一个命令可以通过 use 收集更多历史数据git fetch --depth=<depth>。
当我们想从大型存储库中释放一些空间时怎么样?我知道我们可能会使用git gc或者git prune有其他特定的方式--depth=<depth>来减少本地存储库中的提交存储数量吗?并且它还应该保持 SHA1 能够继续使用它。
有人意外地将一些大型(多GB)二进制文件提交给我自己托管的gitlab存储库,现在每当有人试图从存储库中取出时,服务器就会受到严重打击.
我尝试通过强制推送删除对文件的任何引用,但它似乎仍然影响服务器.有没有办法强制gitlab服务器摆脱它?
我读了一些像filter-branch这样的东西,但我不确定那会对裸仓库做什么,或者我甚至在提交时使用它我不再有引用.
更新:作为参考,这些类型的消息出现在gitlab VM的控制台上:
[ 5099.922896] Out of memory: kill process 6200 (git-upload-pack) score 1053982 or a child
[ 5099.922908] Killed process 6202 (git)
[ 5099.930796] Out of memory: kill process 6200 (git-upload-pack) score 360394 or a child
[ 5099.930807] Killed process 6203 (git)
[ 5099.938875] Out of memory: kill process 6200 (git-upload-pack) score 360394 or a child
[ 5099.938886] Killed process 6203 (git)
[ 5099.951163] Out of memory: kill process 6139 (git-upload-pack) score 324327 or a child
[ …Run Code Online (Sandbox Code Playgroud) 我现在使用dokku与数字海洋一段时间没有任何问题
现在使用以下命令部署到dokku时遇到问题:
git remote add dokku dokku@some-ip:myapp
git push dokku develop:master
Run Code Online (Sandbox Code Playgroud)
我有以下问题:
Counting objects: 528, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (509/509), done.
packet_write_wait: Connection to some-ip port 22: Broken pipe
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'dokku@some-ip:myapp'
Run Code Online (Sandbox Code Playgroud)
我试试
ServerAliveInterval为ssh客户端设置git config http.postBuffer 209715200/git config ssh.postBuffer 209715200但它不起作用.我认为这是因为要推送的内容的大小有点高......
谢谢你的帮助!
更新
设置postBuffer值的选项后209715200,我收到以下错误:
Counting objects: 528, done.
Delta compression using up to …Run Code Online (Sandbox Code Playgroud)