我如何使用ruby-git递归克隆远程仓库?

时间:2013-01-18 23:57:33

标签: ruby git

如何使用ruby-git递归克隆远程仓库?

我使用此代码:

require "git"
Git.clone "git://github.com/user/repo.git", "/tmp/repo"

但是这不会从GitHub递归克隆repo。

我需要一个类比:

$ git clone git://github.com/user/repo.git /tmp/repo --recursive

2 个答案:

答案 0 :(得分:4)

在ruby-git中实现#clone方法告诉我们目前不可能:

https://github.com/schacon/ruby-git/blob/master/lib/git/lib.rb#L44

def clone(repository, name, opts = {})
  @path = opts[:path] || '.'
  clone_dir = opts[:path] ? File.join(@path, name) : name

  arr_opts = []
  arr_opts << "--bare" if opts[:bare]
  arr_opts << "-o" << opts[:remote] if opts[:remote]
  arr_opts << "--depth" << opts[:depth].to_i if opts[:depth] && opts[:depth].to_i > 0

  arr_opts << '--'
  arr_opts << repository
  arr_opts << clone_dir

  command('clone', arr_opts)

  opts[:bare] ? {:repository => clone_dir} : {:working_directory => clone_dir}
end

你最好分叉ruby-git并在那里插入几行。它将解决您的问题,世界将说“谢谢”。

答案 1 :(得分:1)

有时最简单的方法是让应用程序自己完成。为什么不用?

`git clone git://github.com/user/repo.git /tmp/repo --recursive`