0

更新後スクリプトを作成し、git をリモート サーバー上の展開ツールとして使用しようとしています。

私の更新後のスクリプトは次のようになります

git update-server-info

for ref in $@;do
                echo $ref
                if [ "$ref"  = "refs/heads/production" ]
                then
                        ssh git@myProductionServer.com GIT_WORK_TREE=/home/www/test git checkout -f production
                fi
done

ただし、それを実行すると、次のようなエラーが返されます。

Not a git repository (or any of the parent directories): .git

ディレクトリ内からssh経由でgitコマンドを実行できるため、これは意味がありません。 ここに画像の説明を入力

更新後のスクリプトで行う必要があることは他にありますか?


解決

変数を追加したGIT_DIRので、コマンドは次のようになります。

ssh git@myProductionServer.com GIT_DIR=/home/www/test/.git GIT_WORK_TREE=/home/www/test git checkout -f production
4

1 に答える 1

3

GIT_DIRまた、環境変数を設定する必要があります - 以下を試してください:

ssh git@myProductionServer.com GIT_WORK_TREE=/home/www/test GIT_DIR=/home/www/test/.git git checkout -f production

GIT_DIRGIT_WORK_TREE(およびそれに相当するもの--git-dir=<>と)に関するルール--work-tree=<>は直感に反するので、どちらか一方を設定する場合は両方を設定し、さらに両方を設定することをルールにしています。絶対パスに設定します。

于 2011-03-23T06:08:27.193 に答える