如何调试git功能“而不是”

时间:2018-11-06 01:00:34

标签: git git-clone git-config

当我直接克隆REPO时,功能“ Insteadof”(将HTTPS映射到SSH)克隆请求有效

这是通过我的全局git配置文件完成的。

  • 换一种说法,“ git clone https://url_module_K”有效。
  • 我的全局git配置将其转换为SSH请求。

但是-

如果我git递归克隆另一个模块,该模块将module_K作为子模块,它将失败...

ie:git clone --recursive https://url_module_A

  • 顶级模块“ A”被转换为SSH请求

  • 适用于模块A,B,C,D,E ...的所有部件都已转换

  • 但是-进入模块K时,它将恢复为https并要求我的用户名和密码。

这不是git ssh问题

“代替”映射有时无法正常工作是一种问题。

是否有调试方法可以帮助我弄清楚是什么原因造成的?

远程服务器是bitbucket-具有专用存储库。

知道:

  • 虽然我通过而不是通过http将ssh映射到ssh-这适用于其他多个存储库。

  • 我看过-在任何REPO私有(?本地)配置文件中都看不到任何东西,而不是东西

  • 我已经尝试过“剪切/粘贴”相同的URL,这样我就不会犯愚蠢的错字……这无济于事。

未知:

  • 我如何跟踪GIT活动...,因为它读取了配置文件。有建议吗?

  • 我已经尝试过诸如'strace'之类的事情,以查看是否某处的命令行中传递了某些内容-但是-我认为GIT非常了解安全性,因此不会在命令行上执行此类操作- -

  • 也尝试过-在发生这种情况时“ ps -auxwwf”不能帮助确定git各个子组件之间的命令行。

  • 搜索“ git而不是”-被Google Monster“修复”-并变成“而不是”空格-即使我在引号中加上了单词,也因此很难查找内容

1 个答案:

答案 0 :(得分:0)

不确定是否对任何人都有用,但是您可以通过在git前缀GIT_TRACE=1和/或GIT_SSH_COMMAND="ssh -v"的情况下获得相当详细的输出

例如,不运行git fetch,而是尝试运行...

GIT_TRACE=1 GIT_SSH_COMMAND="ssh -v" git fetch

更多详细信息在这里... https://git-scm.com/docs/git