0

所以,我想执行一个崎岖不平的 git pull,所以我像这样进行提取和合并:

require 'rugged'

 certificat = Rugged::Credentials::SshKey.new({username: 'git', privatekey: 'path/to/privatekey', publickey: 'path/to/publickey' })

  repo = Rugged::Repository.new("/tmp/git")
  repo.checkout('master')

  # git fetch

  remote = repo.remotes['origin']
  remote.fetch(credentials: certificat)
  remote.save # save new data

  # git merge

  commit = repo.branches['origin/master'].target
  repo.references.update(repo.head, commit.oid)

但是我的保存方法有这个错误:

undefined method `save' for #<Rugged::Remote:0x0000000135d6e8> (NoMethodError)

我不明白为什么特别是保存方法在 Rugged 文档中(这里

有人知道为什么吗?

编辑:好的,所以这个文档已经过时了,方法 save 不再存在。我认为我的合并不完整,有人知道吗?

EDIT2:我只是在这段代码的末尾添加了这一行,它的工作!

repo.checkout_head({strategy: :force})
4

0 回答 0