无法使用 Ant 目标克隆 GIT 存储库



我正在尝试编写一个 Ant 目标来克隆 git 存储库。以下是蚂蚁目标。这里的组织是公司的名称,组是组名称,存储库是存储库的名称。

<target name ="clone">
<sshexec host="github.ORGANIZATION.com"
username="git"
keyfile="${user.home}/.ssh/id_rsa"
passphrase="pujain"
trust="true"
command="git clone git@github.ORGANIZATION.com:GROUP/REPOSITORY.git"/>
</target>

我收到以下异常:

[sshexec] 您似乎正在使用 ssh 克隆 git://URL。
[sshexec] 确保未设置core.gitProxy config选项和
[sshexec] GIT_PROXY_COMMAND环境变量。

我能够从cmd执行相同的命令。

正确的 SSH URL 将是(对于私有自托管 GitLab 服务器(:

git@github.ORGANIZATION.com:GROUPNAME/REPOSITORY.git
^^^^^^^^^^

存储库名称应有一个":"以及组或个人帐户。

您的sshexec taks正在尝试做的是:

  • 连接到主机"git@github.ORGANIZATION.com:REPOSITORY.git"(这没有意义(
  • 连接到远程服务器后,执行git clone

如果您的脚本需要克隆 GitLab 存储库,您只需要一个执行任务,而不是 SSH 执行任务。

<exec executable="git" dir="D:" failonerror="true">
<arg line="clone git@github.ORGANIZATION.com:REPOSITORY.git dest" />
</exec>

但这不适用于受密码保护的私钥(除非它首先加载到 ssh-agent 中(。
最好使用专为该用途制作的只读部署密钥,而不使用密码。

我认为这不属于主机名?:REPOSITORY.git

也许这会起作用?

<target name ="clone"> <sshexec host="github.ORGANIZATION.com" username="user" password="pass" passphrase="para" trust="true" command="git clone git@github.ORGANIZATION.com:REPOSITORY.git D:/dest" /> </target>

只是为了澄清事情,因此,您希望以用户用户身份连接到ssh服务器github.ORGANIZATION.com,然后在该服务器上运行命令git clone whatever D:/dest。是吗?