我有一组 Web 服务器,为了使服务器上的文件保持最新,我使用了 Windows 计划任务。该任务调用一个执行 git-pull 命令的批处理文件。
这看起来很简单,但我使用 SSH 密钥对 git 服务器进行身份验证。到目前为止,我能够弄清楚将这些密钥传递给 git 的唯一方法是使用pageant.exe
. 结果,我的批处理文件包含以下命令:
"C:\Program Files\TortoiseGit\bin\pageant.exe" "C:\privateKey.ppk"
set local
set HOME=c:\
set GIT_SSH=C:\Program Files\TortoiseGit\bin\TortoisePLink.exe
cd c:\webserverfiles
git pull -v --progress origin master
这在大多数情况下都有效;但是,一个主要问题是选美在后台运行,并且在第一次执行此批处理文件时,第一行无限期挂起。为了解决这个问题,我手动运行任务,杀死它,然后让它自动运行。但是,如果选美比赛崩溃或服务器重新启动,我的文件将不再在该服务器上同步,因为第一线问题(这在循环方案中可能是一个大问题)。
关于如何改进这个方案有什么建议吗?我无法切换到基于 https 的 git。