1

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

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

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

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

4

1 回答 1

4

根据您是要暂存每个文件还是只暂存已经存在的文件,您有两个选项,Index#add_all分别Index#update_all是。

您可以使用repo.index.add_all()暂存指定目录下的每个文件。您可以使用repo.index.update_all()相同的方法,但仅适用于存储库已知的那些文件,类似于 git-A-u选项。

于 2014-11-22T12:27:58.100 回答