github以个人令牌的方式完成多账户管理
记录下新功能的试用
参考链接如下:
- https://docs.github.com/zh/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts
- https://docs.github.com/zh/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
前言
多个github账户在同一电脑管理时, 我们对git进行配置, 以便对不同的仓库链接其对应的github帐号(即使是两个不同的账户也不影响)。
根据官方介绍, 最满足需求的就是”Fine-grained tokens”方案了。
步骤
直接参考本文开头链接中的文档即可。
结果
![]()
最终结果中, 并没有密钥, 也就是说, 当你创建过程结束后, 会显示一个密钥, 而这个密钥你需要尽快记录下来(如复制到你的 本地加密文本管理中 或 任意地方)。总之, 一定要记录下来, 不然页面关闭后, 就再也无法获取此token的密钥了。 (不过也无可后非, 删除这个废掉的token后重新创建一个就好了)
最后附上”细粒度个人访问令牌所需的权限”链接 https://docs.github.com/zh/rest/overview/permissions-required-for-fine-grained-personal-access-tokens?apiVersion=2022-11-28 , 图片中自己用的无可厚非, 但若是为他人生成token, 还是优先按照文档的建议, 参考并在此基础上做个性化的具体管理。
可能遇到的问题及解决方法
使用时需要注意关闭
git代理
此处指通过此命令配置的代理
git config --global https.proxy 'socks5://127.0.0.1:1080'
- 关闭
git代理
(暂时删除代理配置) - 链接(如通过push时间触发等)
- 输入token, 进行验证
- 验证通过(如刚才的push,以成功到达远程仓库)
- 此时可以再次打开你的
git代理
了 (重新配置git代理
) - 因此, 准确来说, 应该是不要在向
git
配置仓库对应账户token的过程中, 使用git代理
。其它情况随意。
- 关闭
配置多账户管理之前, 需要为凭据管理器清除存储的凭据
配置多账户管理的需求的命令为:
git config --global credential.https://github.com.useHttpPath true
前提条件是:
git config --get credential.helper
命令执行后, 没有输出结果。当然, 此命令的输出结果与操作系统有关, win/mac/Linux下遇到的结果是不同的, 需要使用不同的清除凭据的方法。
具体的清除方法参考本文开始处提供的链接中的内容即可。
在此处进行介绍, 主要是因为在mac平台官方对于输出结果为
osxkeychain
时的清除方法存在一些问题。
具体问题是: 使用官方的清除方式后, 再次执行查看命令, 结果仍为osxkeychain
。解决的方式:
删除相关配置文件中类似这样的配置:
1
2[credential]
helper = osxkeychain参考此链接, 删除xcode目录
file:/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig
中的osxkeychain配置。(不过此路径下的osxkeychain配置似乎不会引起git config --get credential.helper
输出osxkeychain的结果)执行此命令
git config --list --show-origin | grep credential.helper
, 来检查未被删除的osxkeychain配置(无法检查出上述xcode目录中的相关配置), 并前往路径将其删除。输出的路径结果可能是:file:/Library/Developer/CommandLineTools/usr/share/git-core/gitconfig credential.helper=osxkeychain
file:/Users/srackhalllu/.gitconfig credential.helper=osxkeychain
- …
这里就不一一举例了, 总之全部删除干净后, 再次执行
git config --get credential.helper
, 确保没有任何输出结果继续正常的执行 命令
git config --global credential.https://github.com.useHttpPath true
配置多账户管理。之后在使用时你会发现, 虽然可以多个仓库单独管理key, 但是却失去了缓存, 每次都要重新输入key。因此, 此时需要进一步重新设置osxkeychain。执行命令
git config --global credential.helper osxkeychain
即可完成设置这个命令实际设置的就是全局 Git 配置文件,即
~/.gitconfig
文件(位于你的用户主目录下,例如/Users/你的用户名/.gitconfig
)。最后执行
git config --get credential.helper
输出结果为osxkeychain即代表设置成功, 此时就可以享受多github账户的管理了。