2016-11-01 12 views
0

小さな自動デプロイスクリプトを設定しようとして2日以来立ち往生しています。 問題:私はGitを数か月使っていますが、自分のコードのバージョンを簡単に保存する目的で、私はいつも自分でローカルで使っていました。すべてここまで良い。Git push-to-deployポスト受信pythonスクリプトでenvを設定できませんvar

新しい機能が実装されるとすぐにコードを「公開」する方法を見つけなければならず、コードは十分安定していると思います。 私はこれらの「フック」を発見しました。これは特定の状況でGitによって実行されるスクリプトです。基本的には、マスターブランチを自分の公開コードと同期させることです。ブランチをマスターと 'プッシュ'にマージするたびに、ファイルは自動的に '/ my/published/folder'にコピーされます。

私はthis tutorialがRubyで書かれている「フック」ポスト受信スクリプトを使ってほしいと思っていることを説明しました。私のスタジオではRubyを使用したくないので、同じスクリプトのPython versionが見つかりました。 私はテストしてテストしましたが、動作させることができませんでした。同じエラーが発生し続ける:

remote: GIT_WORK_TREE is not recognized as as internal or external command, 

これは私が上で共有したチュートリアルに基づいていると考えてください。同じプライド名、同じ構造体など 私のパーソナルラップトップにRubyをインストールしても、元のスクリプトを試しましたが、まだ動作しません...

私はWindowsを使用していますが、Git env変数は設定され、アクセス可能である。しかしそれでも、GIT_WORK_TREEコマンドを認識していないようです。 Git Bashから実行するとうまくいきますが、Windowsシェルを使用すると同じエラーメッセージが表示されます。 pythonスクリプトでcall()関数を使用すると、Windowsシェルを使用してcmdが実行されるとします。それは私の推測ですが、私はそれを解決する方法を本当に知りません。まるで誰もこの問題を抱えていたかのようにGoogleは助けなかった。 多分私はここで何かを見ていないだけですが、私はこの一日を過ごしました。この沼地から出ることはできません!

誰でも解決方法を知っているのですか、または少なくとも回避策のアイデアはありますか?

誰かが助けてくれることを願って... ありがとう!

+0

可能な重複[内部または外部コマンドとして認識されていません「gitの」](http://stackoverflow.com/questions/4492979/git-is-not-recognized: のようなものを使用してみてください-as-an-internal-or-external-command) – user6035379

+0

http://stackoverflow.com/questions/15449428/does-the-shell-in-shell-true-in-subprocess-means-bashは、実行可能なパラメータを含む。私はこれが実際にWindows上で動作するかどうかについての洞察を持っていません。そうであれば、おそらくこれをその質問の重複としてマークしてください。 – tripleee

+0

あなたの環境はどこにあるのかは不明です。どこに展開するのですか?ローカルフォルダまたは別のサーバーにあなたはリモートリポジトリを持っていますか?そうでなければ「プッシュ」を意味しますか? – Ivan

答えて

0

は、あなたが話しているRubyスクリプトは、 "bashの" コマンドを生成します。

GIT_WORK_TREE=/deploy/path git checkout -f ... 

それは意味: "/デプロイ/パス" の値を環境変数 "GIT_WORK_TREE" を定義し、「gitのチェックアウト-fを実行します。.. "。 私はそれがWindowsのコマンドラインでは機能しないことを理解しています。

set GIT_WORK_TREE=c:\temp\deploy && git checkout -f ... 
関連する問題