我最近开始使用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}}参数卡住,但我不确定。有没有更好的方法来解决这个问题?
答案 0 :(得分:4)
根据您是要分阶段归档每个文件还是仅分阶段文件,您有两个选项,Index#add_all
和Index#update_all
。
您可以使用repo.index.add_all()
暂存指定目录下的每个文件。您可以使用repo.index.update_all()
执行相同的操作,但仅针对存储库中已知的文件,与git的-A
和-u
选项类似。