ワークフローを実装しようとするGITは初めてです。
w:/webs/site.com/site.git
ローカルオフィスのセットアップでは、Apache、Linuxなどと共有のDebian Sambaディスクを使用します。したがって、これはBAREリポジトリのタイプの「ローカルパス」からプロジェクトのクローンを作成します。
w:/webs/site.com/site.git/hooks/post-receiveにある「post-receive」フックとしてbashスクリプトを作成しました。これは、「linux」gitによって次のように実行されると考えられます。 `/home/samba/webs/site.com/hooks ...これには、チェックアウトにコミットされたブランチに応じて、次のような条件付きスクリプトが含まれます。
GIT_WORK_TREE=/home/samba/webs/site.com/html git checkout -f $BRANCH
問題は、tortoiseGITローカルコピーからオリジンブランチにプッシュすると、フックが次のように失敗することです。
リモート:致命的:「C:/ ProgramFiles(x86)/Git/home/samba/webs/site.com/html」に切り替えることができませんでした:そのようなファイルまたはディレクトリはありませんw:/webs/site.com/siteへ。ギット
私たちが理解していることは、WORK_TREEまたはフックスクリプト全体がクライアントGITによって実行されていることを意味します。
問題は、SSHやその他のリポジトリへのアクセスを開くことを計画しているため、Windowsローカルパスを使用した場合、Windows以外のローカルネットワーククライアントからプッシュすると失敗することです。別の方法は、ローカルであってもSSH経由でリポジトリをプルすることですが、これはかなり非効率的であり、このフックの問題にのみ必要であると考えています。
両方と互換性のある、使用できる提案やGIT変数はありますか?ありがとう。