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

标签 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 作为 index.addpath 参数,但我不确定.有没有更好的方法来解决这个问题?

最佳答案

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

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

关于ruby - 是否有使用 Rugged 将所有内容添加到 Git 的特定协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27066208/

相关文章:

ruby-on-rails - 可以安装双 Rails 吗?

ruby-on-rails - 我如何运行所有 rake 任务?

创建了 Git 新分支——其他用户是否能够访问相同的分支?

asp.net - .gitignore 仍然包括 asp.net core wwwroot/lib 目录

c - 如何检索所有对象 ID?

go - git2go 中的 SSH 身份验证

ruby-on-rails - 如何在 Ruby 中的 YAML 文件中包含 YAML 文件

ruby-on-rails - 在 Ruby on Rails 中只接受 HTTPS 请求

git: merge 分支但保留提交历史

Git2go : Simulate git checkout and an immediate git push