我最近开始使用 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
作为 index.add
的 path
参数,但我不确定.有没有更好的方法来解决这个问题?
最佳答案
根据您是要暂存每个文件还是只暂存已经存在的文件,您有两个选项,分别是 Index#add_all
和 Index#update_all
。
您可以使用 repo.index.add_all()
将每个文件暂存到指定目录下。您可以使用 repo.index.update_all()
来执行相同的操作,但仅限于存储库已知的那些文件,类似于 git 的 -A
和 -u
选项。
关于ruby - 是否有使用 Rugged 将所有内容添加到 Git 的特定协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27066208/