ワークステーションでローカルに行われた変更を「ハブ」リポジトリ (リモート) にプッシュできる環境をセットアップしています。その後、更新後フックがステージング Web サイト (「プライム」) を自動的に更新します。これを行っているのは、リモート ハブにプッシュしたときに、変更がステージング サイトに自動的に反映されるのを確認できるようにするためです。
この設定は、この記事に基づいています。私のサーバーは Windows 2012 で、サーバーとワークステーション (Windows 7) の両方で MSysGit を使用しています。
すべてを手動で行うと、すべてが正常に機能します-ローカルリポジトリからハブにプッシュし、手動でプライムにフェッチ/マージします。私の問題は、更新後のフックでフェッチ/マージを実行しようとしたときです。
ハブに変更をコミットすると、次のような出力が得られます。
c:\Code4X\GIT\stage>git push stage master
Counting objects: 11, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 518 bytes, done.
Total 6 (delta 5), reused 0 (delta 0)
remote:
remote: **** Pulling changes into Live [Stage's post-update hook]
remote:
remote: hooks/post-update: line 12: cd: /c/websites/myproject.staging: No
such file or directory
To w:/stage.git
ce1e2ea..93e11f4 master -> master
私の更新後のフックは次のとおりです。
#!/bin/sh
echo
echo "**** Pulling changes into Live [Stage's post-update hook]"
echo
cd /c/websites/myproject.staging || exit
unset GIT_DIR
git pull stage master
exec git update-server-info
問題なくディレクトリに bash cmd シェルと cd を起動できるので、何が問題なのかわかりません。
私も試しました:
- PATH に git\cmd を含める
- cd しようとしているパスを引用符 (") で囲みます。
- シバンが #!/c/progra~1/git/bin/sh を指すようにする
うまくいけば、それは明らかなことです。問題が何であるかについて何か考えはありますか?