擅长:python、mysql、java
<p>如果您希望完全控制ssh连接的方式,并且使用git2.3或更高版本,您可以使用<code>GIT_SSH_COMMAND</code>环境变量集实例化git。它指向一个在ssh中被称为<em>的</em>脚本。因此,您可以确定是否需要密码,并启动额外的GUI以获得所需的输入。在</p>
<p>在代码中,它看起来像这样:</p>
<pre><code>remote_repo = self.repo.remotes[remote]
# here is where you could choose an executable based on the platform.
# Shell scripts might just not work plainly on windows.
ssh_executable = os.path.join(rw_dir, 'my_ssh_executable.sh')
# This permanently changes all future calls to git to have the given environment variables set
# You can pass additional information in your own environment variables as well.
self.repo.git.update_environment(GIT_SSH_COMMAND=ssh_executable)
# now all calls to git which require SSH interaction call your executable
remote_repo.push(self.repo.active_branch.name)
</code></pre>
<p>请注意,这只适用于通过SSH访问资源。例如,在协议是HTTPS的情况下,可能会给出密码提示。在</p>
<p>在git2.3之前,可以使用<code>GIT_SSH</code>环境变量。它的工作方式不同,因为它只包含<code>ssh</code>程序的路径,其他参数将被传递到该程序。当然,这也可以是您的脚本,类似于上面显示的内容。我想更准确地指出这两个环境变量之间的差异,但我缺乏这样做的个人经验。在</p>