美文网首页
git clone 问题总结

git clone 问题总结

作者: 今夜秋风和 | 来源:发表于2023-02-20 22:53 被阅读0次

    问题一: 克隆了一个vm, 使用git http clone 仓库时遇到 could not read from remote repository 500问题

    • git http clone 仓库时没有输入用户名,密码; 猜测应该是使用git 的凭据存储中的用户名和密码;
    • 删除用户目录下.git-credentials 文件,重新执行git clone ,输入用户名和密码,问题解决;

    git 凭据存储

    • 基于http 方式的clone每次都需要输入用户名和密码,显然是一件麻烦的事情,git拥有一个凭证系统来处理这个事情;

    • git 选项设置:
      1.默认所有都不缓存;
      2.“cache” 模式会将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除;
      3.“store” 模式会将凭证用token的形式存放在磁盘中,并且永不过期,除非我们修改了git服务器上的密码;
      4.mac 系统中,凭证是以osxkeychain 模式,缓存到系统用户的钥匙串中, 这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的; linux 系统放在/home/.git-credentials文件中,windows 系统放在凭据管理器中;
      设置git 凭据管理方式:
      cache方式:
      git config --global credential.helper cache(凭据默认存储在~/.git-credentials), cache 模式--timeout <seconds> 参数,可以设置在内存中的存活时间,(默认是 “900”,也就是15分钟);
      store方式:
      git config --global credential.helper 'store --file ~/.my-credentials',--file 参数可以指定凭据的存储位置;

    • git 中配置多个凭据:
      当在git 中配置多个凭据时,git 会按照顺序依次查找,找到凭据则停止;当凭据更新时,git 将用户名和密码发送给所有的存储工具(cache/store),每个工具按照自己的方式来更新凭据;
      .gitconfig 文件:
      [credential]
      helper = store --file ~/.git-credentials
      helper = cache --timeout 30000

    问题2:git ssh clone 仓库出现 Your account has been blocked问题

    • 前同事用自己的账号生成的ssh-key,配置在git-hub 中,克隆出一个vm后,使用git ssh clone,使用的前同事的ssh-key,导致clone 出现上述问题;
    • 可以重新用现有的机器人账号生成ssh-key 添加到git-hub中;

    ssh-key 生成步骤:

    1. 打开shell 窗口
    2. ssh-keygen -t rsa -C "xxx" -t 指定使用哪种类型算法,-C 指定使用的github 的账户,下图是生成的步骤


      image.png

      3.将目录/root/.ssh/id_rsa.pub 下文件ssh key添加到git-hub中;

    相关文章

      网友评论

          本文标题:git clone 问题总结

          本文链接:https://www.haomeiwen.com/subject/jnypkdtx.html