2016-10-11 120 views
1

我想从.bat文件自动克隆回购。git克隆沉默不起作用

我使用ssh,所以.bat文件首先将“id_rsa”文件移动到“user\.ssh”文件夹。

然后,当我运行“git clone ssh://repo c:\repo”,我得到这个问题

The authenticity of host can't be established. 
RSA key fingerprint is ........ 
Are you sure you want to continue connecting (yes/no)? 

如果我回答是手动它的工作原理,并在“user\.ssh”文件夹中创建“known_hosts”文件。现在,如果我运行.bat文件,则git clone将不会有问题。

我需要从.bat文件中静默地执行此操作。
我试图从.bat文件中回答yes并添加“> /dev/nul 2>&1”,但没有成功。

任何想法?

回答

0

您应该尝试改编“Can I automatically add a new host to known_hosts?”,以便将远程服务器添加到%USERPROFILE%\.ssh\known_hosts

即使从您的Windows bat脚本中,您也可以使用/ path/to/git/bin/bash -c'...'命令。

c:\path\to\git\bin\bash -c 'ssh-keyscan -t rsa,dsa HOST 2>&1 | sort -u - ~/.ssh/known_hosts > ~/.ssh/tmp_hosts && mv ~/.ssh/tmp_hosts ~/.ssh/known_hosts' 

这使您可以使用Linux命令,如grep,sort,...这是git分发的一部分。

0

你使用的是更新的bash吗?基本上你在这里做的是重定向到/ dev/null,这是“无处”。如果你想静静地做,你可以尝试git clone [email protected]:username/repo directory -q

0

为了使它工作,至少现在,我从另一个服务器下载known_hosts文件和id_rsa。