我刚刚添加了一个个人访问令牌,看起来好像 强制使用 rhubv2。
现在“git push”失败,说“推送不能包含秘密”。这是与 GitHub 包 Ecfun 一起使用的。
你建议我做什么来解决这个问题?
谢谢,斯宾塞·格雷夫斯
我在命令行和 RStudio 中尝试了“git Push”,效果相同。我在 GitHub 上启用了“秘密扫描”,但没有明显效果。我进行了网络搜索,但没有找到任何我能理解并遵循的内容来解决此问题。
我解决问题如下:
错误消息告诉我哪个文件有问题。我无意中将个人访问令牌 (PAT) 包含在该文件中。我删除了该文件的令牌。这还不够,所以我将文件的其余部分复制到不受 Git 控制的新文件中,并删除了原始文件。这还不够。
我使用
usethis::create_github_token()
创建了一个新的 PAT。
我调用
gitcreds::gitcreds_set()
在本地 Git 凭证中注册此令牌,并转到我收到的消息中提供的 URL。我不记得在某个地方,我获得了以“ghp_”开头的新 PAT,并将其与 GitHub 条目一起存储在我的密码管理器中。 (我使用KeyPassXC。)
“git Push”仍然给了我明显相同的错误消息。接近尾声时,它说:“要推送,请从提交中删除秘密,或按照此 URL 来允许秘密。
https://github.com/sbgraves237/Ecfun/security/secret-scanning/unblock-secret/ ...
。我点击了那里的某些内容以允许秘密。然后它用以下内容替换了该页面的说明: “允许秘密。您现在可以将此秘密推送到存储库。”
然后我做了“git Push”,它成功了。
** 我可能在本描述中遗漏了一些必要的步骤,并包含了一些不必要的步骤,但我认为我暂时已经解决了这个问题。幸运的话,我的下一个“git Push”将会正常工作。我可以用“git rm”等恢复删除的文件。我的过程包括“git add .”,“git commit --amend”和“git rebase --continue”。如果问题很快又出现,我会回到这里。我希望这对其他人有帮助。斯宾塞·格雷夫斯