私は一連の 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 に切り替えることができません。