ruby 优化和缩小您的GIT存储库(Ruby脚本)。来自Jeff Smith @ rallydev.com。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 优化和缩小您的GIT存储库(Ruby脚本)。来自Jeff Smith @ rallydev.com。相关的知识,希望对你有一定的参考价值。
#!/usr/bin/env ruby
# Original Scripting by Jeff Smith at http://rallydev.com/, https://www.rallydev.com/community/engineering/shrinking-git-repository-move-githubcom.
module ShrinkIt
BUCKETS = 4
def self.remove(files)
files.each_slice(files.size / BUCKETS) do |portion|
paths = portion.join(" ")
ShrinkIt.stream_command("git filter-branch --index-filter 'git rm --cached --ignore-unmatch #{paths}'")
ShrinkIt.stream_command("rm -rf .git/refs/original/")
ShrinkIt.stream_command("git reflog expire --expire=now --all")
ShrinkIt.stream_command("git fsck --full --unreachable")
ShrinkIt.stream_command("git repack -A -d")
ShrinkIt.stream_command("git gc --aggressive --prune=now")
end
end
def self.stream_command(cmd)
puts "#{Time.new} Starting #{cmd}"
IO.popen(cmd) do |data|
while line = data.gets
puts line
end
end
end
end
large_files = []
large_files << "largefile1.jar"
large_files << "HugeDirectory/*"
large_files << "ThirdParty/*"
large_files << "Stuff/*"
large_files << "sub-project/*"
large_files << "zipNotNeededAnymore.zip"
ShrinkIt.remove(large_files)
以上是关于ruby 优化和缩小您的GIT存储库(Ruby脚本)。来自Jeff Smith @ rallydev.com。的主要内容,如果未能解决你的问题,请参考以下文章
编写一个 shell 脚本,该脚本将返回您的存储库 git [重复] 跳过的文件列表
清理巨大的 Git 存储库
GIT & Ruby:如何从 ruby 脚本中取消设置 GIT_DIR 变量?
ruby Gitorious存储库托管服务,您可以在自己的服务器上安装,哈希Git存储库,这使得链接很难
不能 git aws.push 到带有 ruby 存储库的弹性豆茎
仅从 git 存储库中克隆特定版本