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 存储库中克隆特定版本