所以,我想执行一个崎岖不平的 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})