我怎么能有一些关于git/git-shell的调试信息?
我遇到了一个问题,user1可以毫无问题地克隆一个存储库,而user2只能克隆一个空的存储库。我设置了GIT_TRACE=1,但是没有任何有用的提示。
最后,经过长时间的尝试和错误,发现这是一个文件的权限问题。适当的错误消息可以避免此问题。
我怎么能有一些关于git/git-shell的调试信息?
我遇到了一个问题,user1可以毫无问题地克隆一个存储库,而user2只能克隆一个空的存储库。我设置了GIT_TRACE=1,但是没有任何有用的提示。
最后,经过长时间的尝试和错误,发现这是一个文件的权限问题。适当的错误消息可以避免此问题。
当前回答
试试这个:
GIT_TRACE=1 git pull origin master
其他回答
如果是SSH,你可以使用以下命令:
对于更高的调试级别,类型-vv或-vvv分别用于调试级别2和3:
# Debug level 1
GIT_SSH_COMMAND="ssh -v" git clone <repositoryurl>
# Debug level 2
GIT_SSH_COMMAND="ssh -vv" git clone <repositoryurl>
# Debug level 3
GIT_SSH_COMMAND="ssh -vvv" git clone <repositoryurl>
这主要用于处理服务器的公钥和私钥问题。 你可以将此命令用于任何git命令,而不仅仅是'git clone'。
您是否尝试在克隆时添加详细(-v)操作符?
Git克隆-v Git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
对于较旧的git版本(1.8及之前)
我找不到合适的方法在旧的git和SSH版本中启用SSH调试。我使用ltrace -e getenv查找环境变量…并且找不到任何可以工作的GIT_TRACE或SSH_DEBUG变量组合。
相反,这里有一个临时注入'ssh -v'到git->ssh序列的配方:
$ echo '/usr/bin/ssh -v ${@}' >/tmp/ssh
$ chmod +x /tmp/ssh
$ PATH=/tmp:${PATH} git clone ...
$ rm -f /tmp/ssh
以下是git版本1.8.3的输出,ssh版本OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 2013年2月11日克隆一个github repo:
$ (echo '/usr/bin/ssh -v ${@}' >/tmp/ssh; chmod +x /tmp/ssh; PATH=/tmp:${PATH} \
GIT_TRACE=1 git clone https://github.com/qneill/cliff.git; \
rm -f /tmp/ssh) 2>&1 | tee log
trace: built-in: git 'clone' 'https://github.com/qneill/cliff.git'
trace: run_command: 'git-remote-https' 'origin' 'https://github.com/qneill/cliff.git'
Cloning into 'cliff'...
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /home/q.neill/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to github.com ...
...
Transferred: sent 4120, received 724232 bytes, in 0.2 seconds
Bytes per second: sent 21590.6, received 3795287.2
debug1: Exit status 0
trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all'
trace: exec: 'git' 'rev-list' '--objects' '--stdin' '--not' '--all'
trace: built-in: git 'rev-list' '--objects' '--stdin' '--not' '--all'
要获得更详细的输出,请使用以下方法:
GIT_CURL_VERBOSE=1 GIT_TRACE=1 git拉源主
试试这个:
GIT_TRACE=1 git pull origin master