Git问题整理

2013.08.25/2013.10.18发布于笔记暂无评论/目录

整理git使用过程中遇见的错误及其解决方案。

中文文件或目录名被转码

git默认会对路径里超过0x80的字节进行转码,设置core.quotepathfasle可以禁止自动转码,详情见git-config(1)core.quotepath部分。

git config --global core.quotepath false

fatal: cannot exec .. Permission denied

使用git alias命令git st(参考这里的配置时提示如下错误:

fatal: cannot exec git st: Permission denied

参考stackoverflow上的解答, 使用如下方法解决.

  1. 安装strace

    apt-get install strace

  2. 使用strace执行git st

    strace -f -e execve git st

  3. 根据输出结果进行修正, 我的错误在于$PATH变量设置有误.

Cygwin git ca-bundle.cert错误

cygwin下用git向远程https仓库推送数据时遇到以下问题:

error: error setting certificate verify locations:
CAfile: /usr/ssl/certs/ca-bundle.crt
CApath: none while accessing https://github.com/wilbur-ma/dokuwiki-tweak.git/info/refs
fatal: HTTP request failed

参考这里,解决办法是在cygwin上安装ca-certificates。

recursion detected in die handler

使用git push的时候遇到如下问题:

fatal: recursion detected in die handler

参考这里的问题,问题原因是http.postBuffer默认上限为1M所致。在git的配置里将http.postBuffer变量改大一些即可,比如将上限设为5M:

git config http.postBuffer 5242880

问题的原解决答案为:

If you attempt to push a large set of changes to a Git repository with HTTP or HTTPS, you may get an error message such as error: RPC failed; result=22, HTTP code = 411. This is caused by a Git configuration default which limits certain HTTP operations to 1 megabyte.

To change this limit run within your local repository

git config http.postBuffer bytes where bytes is the maximum number of bytes permitted.

阅读资料

#git#problem

评论