【发布时间】:2017-03-03 02:51:08
【问题描述】:
我正在尝试删除 git repo 中的目录数组,并为每个删除的目录进行 1 次提交。我正在使用 Rugged 和 Gitlab_git(它或多或少只是 Rugged 的一个包装器),到目前为止,除了实际删除和提交之外,我已经设法完成了我需要做的所有事情。
我在Rugged Readme 中没有看到任何解释如何删除整个树/目录的内容。我尝试将他们的提交示例用于 blob 并用目录替换单个文件,但它没有用
我还尝试编辑他们为树构建器提供的代码,但它在我的历史记录中添加了一个提交,显示回购中的 每个 文件已被添加,然后离开 staging 显示相同事物。什么都没有被删除。
oid = repo.write("Removing folder", :blob)
builder = Rugged::Tree::Builder.new(repo)
builder << { :type => :blob, :name => "_delete", :oid => oid, :filemode => 0100644 }
options = {}
options[:tree] = builder.write
options[:author] = { :email => "testuser@github.com", :name => 'Test Author', :time => Time.now }
options[:committer] = { :email => "testuser@github.com", :name => 'Test Author', :time => Time.now }
options[:message] ||= "Making a commit via Rugged!"
options[:parents] = repo.empty? ? [] : [ repo.head.target ].compact
options[:update_ref] = 'HEAD'
Rugged::Commit.create(repo, options)
有什么建议吗?我对 git 内部仍然有点模糊,所以也许这就是我的问题。
【问题讨论】:
标签: ruby git gitlab libgit2 rugged