如何使用< repository>和< refspec>选项调用rubygitpush命令?

s5a0g9ez  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(419)

这就是我指的图书馆:https://github.com/ruby-git/ruby-git
我正在尝试将以下命令转换为该库的git模块 git --git-dir=/path/to/repo/.git --work-tree=/path/to/repo push --no-verify ssh://git.my.url/pkg/repo-name <commit_hash>:refs/heads/head 这就是我到目前为止所做的:

  1. git = Git.clone(some_ssh_url)
  2. ... git add and git commit commands
  3. git.push(
  4. remote: "#{some_ssh_url}",
  5. branch: "#{git.revparse('HEAD~0').strip}:refs/heads/head",
  6. opts: { '--no-verify' => '' }
  7. )

这会产生以下错误:

  1. Traceback (most recent call last):
  2. 6: from /***:in `<main>'
  3. 5: from /***:in `main'
  4. 4: from /***:in `method_a'
  5. 3: from /***:in `method_b'
  6. 2: from /***:in `push'
  7. 1: from /***/RubyGem-git/RubyGem-git-1.5.x.1579.0/AL2_x86_64/DEV.STD.PTHREAD/build/ruby2.7.x/lib/ruby/gems/2.7.0/gems/git-1.5.0/lib/git/lib.rb:767:in `push'
  8. /***/RubyGem-git/RubyGem-git-1.5.x.1579.0/AL2_x86_64/DEV.STD.PTHREAD/build/ruby2.7.x/lib/ruby/gems/2.7.0/gems/git-1.5.0/lib/git/lib.rb:967:in `command': git '--git-dir=/***/.git' '--work-tree=/***' push '{:opts=>{"--no-verify"=>"", "ssh://git.my.url/pkg/***"=>"", "<commit_hash>:refs/heads/head"=>""}}' 'master' 2>&1:error: src refspec master does not match any (Git::GitExecuteError)
  9. error: failed to push some refs to '{:opts=>{"--no-verify"=>"", "ssh://git.my.url/pkg/***"=>"", "<commit_hash>:refs/heads/head"=>""}}'

不清楚我是否正确地翻译了命令,但是当我运行 git --git-dir=/path/to/repo/.git --work-tree=/path/to/repo push --no-verify ssh://git.my.url/pkg/repo-name <commit_hash>:refs/heads/head 具有 Open3 它通过了,所以我猜我在RubyGit中拥有的不是等价的。
有没有人使用过RubyGit,并且知道如何做类似的事情?

zhte4eai

zhte4eai1#

你不能https://github.com/ruby-git/ruby-git/blob/45aeac931b346cc73666ac03521ebfb0cd52fd93/lib/git/lib.rb#l886-l902
发送请求以扩展库。它是开源的:)

相关问题