使用Rstudio提交到GitHub仓库过程中出现的问题及其解决办法

问题1:

在使用Rstudio中的git,提交 (commit) 时会出现以下错误:

1
error: gpg failed to sign the data

通过搜索,查到以下解决办法,办法可行。

这是一个常见的错误,通常与与GnuPG(GNU隐私保护)工具集相关的问题有关。GnuPG是一个用于加密和数字签名的免费软件,常用于保护Git提交的完整性和真实性。

错误原因

gpg失败签名数据错误可能由以下几个原因引起:

a. GnuPG未正确配置

在某些情况下,GnuPG未正确配置可能导致无法签名数据。这可能是由于缺少必要的密钥对或不正确的配置文件设置。

b. 缺少GnuPG密钥

要对Git提交进行签名,您需要使用GnuPG密钥对。如果您没有生成或导入密钥,那么Git将无法执行签名操作。

c. Git设置错误

有时,Git的设置可能会影响GnuPG的签名功能。可能存在不正确的配置或设置冲突,导致gpg无法成功签名数据。

解决办法

  1. 查看是否存在GnuPG密钥

1
gpg --list-keys

存在密钥显示如图:

  1. 生成新的密钥

1
gpg --gen-key
  1. 导入GnuPG密钥

导出新生成的公钥和私钥:

1
2
gpg --output pubkey.gpg --armor --export zhang6410319@hotmail.com
gpg --output privkey.gpg --armor --export-secret-key zhang6410319@hotmail.com

将公钥和私钥导入到GnuPG密钥环中:

1
2
gpg --import pubkey.gpg
gpg --allow-secret-key-import --import privkey.gpg
  1. 问题解决

问题2:

Rstudio和VStudio运行Git过程中会弹出账号选择窗口。

原因:设定了多个账号,未设定默认。

解决办法

方法一 设定默认账号

1
2
# git config --global credential.<URL>.username <USERNAME>
git config --global credential.https://github.com.username=leafminer

关联默认账户与已存在于本地的clone:

1
2
3
git remote set-url origin https://leafminer@github.com/
# clone时使用下面的方式,可直接关联:
# git clone https://leafminer@github.com/mona/test

方法二 退出多余账号

使用git credential-manager github​管理账号

先查看当前存在的账号:

1
git credential-manager github

删除不需要的账号:

1
git credential-manager github logout 22977646

示例结果如下图:

参考

  1. https://geek-docs.com/git/git-questions/807_git_git_error_gpg_failed_to_sign_data.html

  2. https://github.com/git-ecosystem/git-credential-manager/blob/main/docs/multiple-users.md#tldr-tell-gcm-to-remember-which-account-to-use