是否有使用Rugged将所有内容添加到Git的特定协议?

时间:2014-11-21 16:41:19

标签: ruby git libgit2 rugged

我最近开始使用Rugged,并且已经遇到了一些问题。基本上我想做的就是在Git仓库中添加所有内容,提交暂存的更改,并将所有内容推送到分支。我从第一步开始如下:

@repo = Rugged::Repository.new(Dir.pwd)
@index = @repo.index

def git_add
    @index.add mode: 'add-all'
end

但是控制台最终尖叫着对我说。我浏览了libgit2的文档,但无法找到在repo中添加所有内容的任何示例。一些彻底的谷歌搜索产生了类似的结果。我可能只是@repo.workdir.entries作为path的{​​{1}}参数卡住,但我不确定。有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:4)

根据您是要分阶段归档每个文件还是仅分阶段文件,您有两个选项,Index#add_allIndex#update_all

您可以使用repo.index.add_all()暂存指定目录下的每个文件。您可以使用repo.index.update_all()执行相同的操作,但仅针对存储库中已知的文件,与git的-A-u选项类似。