3

我正在使用 ANT 的帮助进行 GIT 克隆。我正在使用以下代码:

<target name ="deploy">

 <sshexec host="ssh://user@rep_location/project_name.git"
    username="username"
    password=""
    passphrase="passphrase"
    trust="true"
    command="git clone ssh://user@rep_location/project_name.git  D:/dest"/
    />

</target>

位置“ D:/dest”是我希望克隆存储库的必需文件夹。但它抛出错误为unknown host exception.

我尝试了一些与主机类似的组合,ssh://user@rep_location但它也返回服务器连接超时。
我们要求在结帐时提供密码。此命令适用于GIT BASH.

4

3 回答 3

0

这应该与此“未知主机密钥”经典 ssh 错误相关联:请参阅“ com.jcraft.jsch.JSchException: UnknownHostKey ”。

最简单的解决方案仍然是先手动执行 ssh:

尝试从命令行 ssh 并接受公钥(主机将被添加到~/.ssh/known_hosts

确保在 Windows 上HOME定义了环境变量,sshexec ant 任务使用的 JSch将能够在其中找到%HOME%\.ssh\known_hosts文件。
这与始终定义 $HOME 的类 unix git bash 会话不同。

于 2013-07-16T10:42:46.370 回答
0

以下错误表示 ANT 无法解析主机名:

未知主机异常

您正在提供一个 git URL 作为主机参数的值:

 <sshexec host="hostwhereIwanttoclonerepository.com"
    username="username"
    passphrase="passphrase"
    trust="true"
    command="git clone ssh://user@rep_location/project_name.git  D:/dest"/
    />

请记住,您正在远程计算机上运行 git 命令,“用户名”帐户将需要有效的 SSH 凭据才能访问 git 存储库主机。

最后,我怀疑您正在尝试在本地克隆存储库?在这种情况下,您不应该使用 sshexec 任务。我建议尝试jGit中的“git-clone”ANT 任务。例如:

您可能还需要包含 jsch jar 才能访问 SSH Git URL。

于 2013-07-16T18:48:29.913 回答
0
<exec executable="${gitBinPath}">
    <arg value="clone" />
    <arg value="--depth" />
    <arg value="1" /> 
    <arg value="${gitRepositoryURL}" />
    <arg value="${deployDir}" />
</exec>
  • gitBinPath:git.exe 的位置
  • gitRepositoryURL:Git 存储库 URL
  • deployDir:目标文件夹

于 2017-02-06T14:28:29.513 回答