
使用GIT更新Github库
最近在更新openwrt软件包的时候忘记了Git是咋用的了,特此记录一下。
原文链接:https://zhuanlan.zhihu.com/p/628727065
当前,通过Git在本地仓库和远程仓库(如Github)之间进行操作,已不再支持密码验证,而是转为通过更安全的SSH密钥验证方式。
因此,本文将介绍如何生成SSH密钥以及将其添加到Github中,此外也会介绍配置过程中常见问题的解决方法。
生成SSH密钥
没啥好说的,直接:
ssh-keygen
就可以了。
添加密钥到Github账户
生成SSH密钥后,复制公钥内容到自己的Github账户中。具体地,点击Github右上角账户图标→Settings→SSH and GPG keys→New SSH key,在Key一栏粘贴公钥内容,在Title一栏设定这个SSH密钥的标识:
验证
执行完上述两步操作后,正常情况下已经配置成功了,此时可以验证一下:
ssh -T git@github.com
# 如果输出以下内容,则表示配置成功,此时即可直接进行任何git操作。
# Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
Git使用方法
添加文件更新信息:
git add .
添加评论:
git commit -m 'update'
push到github:
git push
相关问题解决
Support for password authentication was removed ...
在配置好SSH后,进行git操作时,仍要求输密码,即使输入了正确的账户和密码,还是报错:
# remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
# remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
# fatal: Authentication failed for 'https://github.com/xxx/xxx.git/'
出错的原因在于:本地仓库在clone时使用的是HTTPS URL,故该仓库此时的remote协议会是HTTPS协议,然而SSH密钥连接只支持SSH URL,不支持HTTPS URL,故会要求输账户密码。
因此,需要将remote协议从HTTPS协议修改为GIT协议。在本地仓库路径下输入以下命令:
git remote set-url origin git@github.com:xxx/xxx.git
此时,再进行git的pull/push操作就不再需要输密码了,直接可以通过SSH密钥认证。
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果