繁体   English   中英

无法使用 Ant Target 克隆 GIT 存储库

[英]Unable to clone a GIT repository using Ant Target

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

<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 配置选项和
[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 存储库,您只需要一个exec 任务,而不是 SSH exec 任务。

<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 那正确吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM