一个刚毕业就当爹的程序猿 正在迷雾中寻找道路...

Git使用技巧以及常见问题解决

本文记录了 Git 使用中遇到过的一些问题和一些小技巧

使用技巧

  • 设置用户名和邮箱

    • 邮箱 git config --global user.email "admin@yumc.pw"
    • 用户名 git config --global user.name "502647092"
  • 保存账号密码 避免每次推送输入

    • 执行 git config --global credential.helper store
  • 如果 WindowsLinux 下协同开发 需要配置换行符转换

    • 检出 CRLF 提交 LF git config --global core.autocrlf true (推荐)
    • 检出不转换 提交 LF git config --global core.autocrlf input
    • 检出提交均不转换换行符 git config --global core.autocrlf false
    • 当然还可以用 .gitattributes 设置单个仓库内部 不同文件类型的换行符
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      # Set the default behavior, in case people don't have core.autocrlf set.
      * text=auto

      # Explicitly declare text files you want to always be normalized and converted
      # to native line endings on checkout.
      *.c text
      *.h text eol=lf

      # Declare files that will always have CRLF line endings on checkout.
      *.sln text eol=crlf

      # Denote all files that are truly binary and should not be modified.
      *.png binary
      *.jpg binary

常见问题

  • 提示 fatal: unable to access 'https://xxxxxxxxx': SSL certificate problem: unable to get local issuer certificate

    • 原因: 服务器SSL证书不被信任
    • 解决方案
      • 输入 git config --global http.sslVerify false 关闭 SSL 证书验证
  • 提示 fatal: unable to access 'https://xxxxxxxxx': SSL connect error

    • 原因: SSL链接建立失败 修改CURL参数
    • 解决方案1 调整CURL
      • 输入 GIT_CURL_VERBOSE=1 git push origin master 之后应该可以成功
      • 同时也可以把 GIT_CURL_VERBOSE=1 设置为系统环境变量
    • 解决方案2 修改ssl版本 Github无法连接的问题
      • 更新 GIT 到最新版本
      • 设置ssl的版本 git config --global http.sslversion tlsv1
  • 提示 error: non-monotonic index .git/objects/pack/._pack-*.idx 其中 * 是一个hash值字串

    • 原因: 需要重建文件
    • 解决方案
      • 输入 rm .git/objects/pack/pack-*.idx 其中 * 是一个提示的那个
      • 输入 git index-pack .git/objects/pack/pack-*.pack 重建索引 其中 * 是一个提示的那个
  • 提示 xxxx\mingw64\bin\sh.exe: *** Couldn't reserve space for cygwin's heap

    • 原因: Dll 问题 下面方案不行 那就重启电脑
    • 解决方案
      • 打开 Git-Bash
      • 输入 cd /mingw64/bin
      • 输入 rebase.exe -b 0x50000000 msys-1.0.dll
  • 提示 git-remote-https: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory

    • 原因: 类库没有安装
    • 解决方案
      • 输入 yum install -y curl-devel
      • 输入 ln -s /usr/lib64/libcurl.so.4 /usr/lib64/libcurl-gnutls.so.4
  • 参考资料