Git 连接超时和尝试

Git 连接超时和尝试

在我需要调用的脚本中git archive,该脚本依次调用ssh

git archive master [email protected]:path/repo.git file
 \_ /usr/bin/ssh [email protected] git-upload-archive 'path/repo.git'

我需要使用参数调用 ssh -o ConnectTimeout=1 -o ConnectionAttempts=1,但只需一次(我无法更改 git 或 ssh 的配置)

我该如何修改git archive命令行来执行此操作?

答案1

环境变量允许您使用备用命令和参数GIT_SSH_COMMAND覆盖默认的 SSH 应用程序( )。ssh

例如,就您的情况而言,您将需要使用:

export GIT_SSH_COMMAND="ssh -o ConnectTimeout=1 -o ConnectionAttempts=1"
git archive master [email protected]:path/repo.git file

还有一个GIT_SSH环境变量允许您指定备用命令(无参数),因此如果您需要多次执行此操作,则可以使用脚本:

echo '#!/bin/bash -eu' > ./my_ssh
echo 'ssh -o ConnectTimeout=1 -o ConnectionAttempts=1 "${@}"' >> ./my_ssh
chmod +x ./my_ssh

export GIT_SSH="./my_ssh"
git archive master [email protected]:path/repo.git file

相关内容