如何使用 git2r 通过 ssh 推送 git 存储库?
How to push git repository through ssh using git2r?
我正在尝试使用 git2r
包(版本 0.21.0)。
我总是在我的项目中使用 ssh
连接(GitHub 和 GitLab 托管):我可以用 RStudio IDE
和命令行做 git pull/push
。
我有一个标准的 Ubuntu Xenial 配置;我的密钥以标准名称存储在 ~/.ssh
中,我的 ssh-agent
是 运行,并且密钥已添加到 ssh-agent
。我的问题是如何使用 git2r
包来推送 ssh
?
这是我使用非常基本的工作流程所做的(在 master
上工作,远程名称是 origin
):
library(git2r)
repo <- init("path_to_clone")
remote_url(repo)
[1] "git@gitlab.com:account/repository.git"
credentials <- cred_ssh_key()
str(credentials)
Formal class 'cred_ssh_key' [package "git2r"] with 3 slots
..@ publickey : chr "/home/user/.ssh/id_rsa.pub"
..@ privatekey: chr "/home/user/.ssh/id_rsa"
..@ passphrase: chr(0)
# some work, add(), commit()...
push(repo, "origin", "refs/heads/master", credentials = credentials)
Error in .local(object, ...) :
Error in 'git2r_push': unsupported URL protocol
ssh
协议是否在 git2r
包中实现?我错过了什么吗?`
编辑: 我确实错过了一些东西。但是,什么?
libgit2_features()
$threads
[1] FALSE
$https
[1] FALSE
$ssh
[1] FALSE
我终于找到了我错过的东西。我在安装 git2r
.
之前忘记安装 libssh2-1-dev
库
类似的问题.
安装libssh2-1-dev
:
sudo apt-get install libssh2-1-dev
我正在尝试使用 git2r
包(版本 0.21.0)。
我总是在我的项目中使用 ssh
连接(GitHub 和 GitLab 托管):我可以用 RStudio IDE
和命令行做 git pull/push
。
我有一个标准的 Ubuntu Xenial 配置;我的密钥以标准名称存储在 ~/.ssh
中,我的 ssh-agent
是 运行,并且密钥已添加到 ssh-agent
。我的问题是如何使用 git2r
包来推送 ssh
?
这是我使用非常基本的工作流程所做的(在 master
上工作,远程名称是 origin
):
library(git2r)
repo <- init("path_to_clone")
remote_url(repo)
[1] "git@gitlab.com:account/repository.git"
credentials <- cred_ssh_key()
str(credentials)
Formal class 'cred_ssh_key' [package "git2r"] with 3 slots ..@ publickey : chr "/home/user/.ssh/id_rsa.pub" ..@ privatekey: chr "/home/user/.ssh/id_rsa" ..@ passphrase: chr(0)
# some work, add(), commit()...
push(repo, "origin", "refs/heads/master", credentials = credentials)
Error in .local(object, ...) : Error in 'git2r_push': unsupported URL protocol
ssh
协议是否在 git2r
包中实现?我错过了什么吗?`
编辑: 我确实错过了一些东西。但是,什么?
libgit2_features()
$threads [1] FALSE $https [1] FALSE $ssh [1] FALSE
我终于找到了我错过的东西。我在安装 git2r
.
之前忘记安装 libssh2-1-dev
库
类似的问题
安装libssh2-1-dev
:
sudo apt-get install libssh2-1-dev