我正在尝试编写一个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执行相同的命令。
答案 0 :(得分:1)
正确的SSH URL将是(对于私有的自托管GitLab服务器):
git@github.ORGANIZATION.com:GROUPNAME/REPOSITORY.git
^^^^^^^^^^
应该在回购名称的前面 之前有一个“:”和一个组或个人帐户。
您的sshexec taks
想要做的是:
git@github.ORGANIZATION.com:REPOSITORY.git
”(没有意义)git clone
。如果您的脚本需要克隆GitLab存储库,那么您只需要exec task而不是SSH执行任务即可。
<exec executable="git" dir="D:\" failonerror="true">
<arg line="clone git@github.ORGANIZATION.com:REPOSITORY.git dest" />
</exec>
但是,这不能与受密码短语保护的私钥一起使用(除非首先为it loaded in ssh-agent)。
最好使用专门为此用途制作的read-only deploy key,而不使用密码短语。
答案 1 :(得分:0)
我认为这不属于主机名吗? np.where
?
也许这行得通吗?
:REPOSITORY.git
只是为了解决问题,因此,您要以用户 user 的身份连接到ssh服务器 github.ORGANIZATION.com ,然后运行命令
<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>
在该服务器上。是吗?