如何使用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
答案 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`