记录下新功能的试用

参考链接如下:

前言

多个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, 还是优先按照文档的建议, 参考并在此基础上做个性化的具体管理。

可能遇到的问题及解决方法

  1. 使用时需要注意关闭git代理

    此处指通过此命令配置的代理git config --global https.proxy 'socks5://127.0.0.1:1080'

    • 关闭git代理 (暂时删除代理配置)
    • 链接(如通过push时间触发等)
    • 输入token, 进行验证
    • 验证通过(如刚才的push,以成功到达远程仓库)
    • 此时可以再次打开你的git代理了 (重新配置git代理)
    • 因此, 准确来说, 应该是不要在向 git 配置仓库对应账户token的过程中, 使用git代理。其它情况随意。
  2. 配置多账户管理之前, 需要为凭据管理器清除存储的凭据

    配置多账户管理的需求的命令为: 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账户的管理了。