1

http://danielmiessler.com/study/git/#websiteで git をセットアップして自分のサイトを管理しようとしています。私はwin7でgit guiを使用して作業しています

手順の最後のステップに到達しました: git push web サイト

Webサイトにプッシュしたところ、ベアディレクトリ ~/website.git 内のオブジェクトディレクトリが更新されていることが確認できました。

私のフックは「post_update」と呼ばれ、次の内容があります

#!/bin/sh
echo
echo "**** Pushing data to Live Server.">>~/hi.txt
echo
export > ~.file1.txt
GIT_WORK_TREE=/home/***/public_html/b1a
export >> ~.file1.txt
git checkout -f

/public_html/b1a に移動すると、空のディレクトリです。hooks ディレクトリと b1a を 777 に変更したことに注意してください。

上記のように、環境変数を file1.txt に出力しているため、post_update フックが起動していることを確認できます。私が見るファイルでは:

GIT_DIR="."

しかし、GIT_WORK_TREE は見られません。これを設定する能力がなければ、私は立ち往生しています。

助けていただければ幸いです。

前もって感謝します、

明細書

4

1 に答える 1

1

編集:わかりました、それで今私はあなたの問題を見ます。

必要なスクリプトは次のとおりです。

#!/bin/sh
echo
echo "**** Pushing data to Live Server.">>~/hi.txt
echo
GIT_WORK_TREE=/home/***/public_html/b1a git checkout -f

なぜ、どのように機能するのかは本当にわかりませんが、機能します。

なぜ出力をそれらのファイルにリダイレクトしたのかわかりませんexport-本当にそれが必要ですか?

このスクリプトは、ディレクトリHEADへのリポジトリの現在の状態をチェックアウトするだけです。GIT_WORK_TREEそれでおしまい。他に何か必要な場合は、コメントしてください。


GIT_WORK_TREE変数をエクスポートしていないと思います。

これらの行を変更して、変数を設定するだけでなく、実際にその変数をエクスポートできるようにしてください。

#!/bin/sh
echo
echo "**** Pushing data to Live Server.">>~/hi.txt
echo
export GIT_WORK_TREE=/home/***/public_html/b1a
export > ~/.file1.txt
git checkout -f

最初の値は値をexport設定GIT_WORK_TREEしてエクスポート用にマークし、2番目の値は現在エクスポートされているすべての変数をファイルに出力します。

私はこれをLinuxで実行していますが、git-bashでも同じだといいのですが...

于 2012-11-25T19:59:54.720 に答える