如何使用SSH详细模式运行git push/pull命令?

Kev*_*rke 44 git ssh

如果我使用GIT_TRACE = 2环境变量运行"git push",我会得到以下结果:

09:25:28.098743 git.c:349               trace: built-in: git 'push' 'origin' 'master'
09:25:28.100261 run-command.c:341       trace: run_command: 'ssh' 'git@bitbucket.org' 'git-receive-pack '\''kevinburke/letter.git'\'''
Run Code Online (Sandbox Code Playgroud)

哪个很好,除非有时我得到这个错误:

fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)

我只是间歇性地得到它所以我不确定发生了什么.我知道ssh有一个冗长的模式:

 -v      Verbose mode. Causes ssh to print debugging messages about its progress. 
         This is helpful in debugging connection, authentication, and configuration
         problems.  Multiple -v options increase the verbosity.  The maximum is 3.
Run Code Online (Sandbox Code Playgroud)

如果我可以git-vvv打开的情况下运行该ssh命令,那将会很棒.有没有办法用环境变量或配置设置启用它?

Fli*_*imm 59

从Git版本2.3.0开始,您可以使用环境变量GIT_SSH_COMMAND并传递-v详细参数,如下所示:

GIT_SSH_COMMAND="ssh -v" git clone <REPO_SSH>
Run Code Online (Sandbox Code Playgroud)

从Git版本2.10.0开始,您甚至可以按每个仓库或全局配置:

GIT_SSH_COMMAND="ssh -vvv" git clone <REPO_SSH>
Run Code Online (Sandbox Code Playgroud)


小智 37

把它放在〜/ .ssh/config文件中:

Host <git-server-FQDN> LogLevel (QUIET|FATAL|ERROR|INFO|VERBOSE|DEBUG|DEBUG1|DEBUG2|DEBUG3)
Run Code Online (Sandbox Code Playgroud)

与服务器交互的后续git命令应产生所需的调试输出.

  • 如果您尝试调试使用ssh密钥的问题,这无济于事.最好使用@Flimm的答案(例如GIT_SSH_COMMAND ="ssh -v"git ...). (3认同)