私はソースコードで1つのディレクトリでローカルに作業します。私はmasterとdevの2つの枝を持っています。専用のサーバーを各自のディレクトリに移動して、本番用のディレクトリと開発用のディレクトリを作成したいと考えています。次に、サブドメインなどにアクセスするためのNginxを設定することができます。独立したgitディレクトリ(master/dev)
このコードを、私の(only)project.git/hooks/post-receiveの受信ファイルに使用しようとしました。
#!/bin/bash
while read oldrev newrev ref
do
branch=`echo $ref | cut -d/ -f3`
if [ "master" == "$branch" ]; then
git --work-tree=/home/myself/project/site --git-dir=/home/myself/myproject/myproject.git checkout -f
echo 'Changes pushed live.'
fi
if [ "dev" == "$branch" ]; then
git --work-tree=/home/myself/myproject/site-dev --git-dir=/home/myself/myproject/myproject.git checkout -f
echo 'Changes pushed to dev.'
fi
done
devブランチの変更をコミットしようとしました。私はそれをうまくプッシュします( "Changesはdevにプッシュされました")。しかしdevディレクトリは私のリモートサーバ上では全く変更されていません(masterブランチと同じ)。
お願いします。
ありがとうございます!
Gitはリリースツールではありません。リリース用に使うことはできますが、うまくいきません。代わりにリリースツールを調べることをお勧めします。 – Schwern
確かに。変更があったときはいつでも、あなたのリポジトリからリリースプロセス*を引っ張っておくべきです。これは引き続き複数の異なる方法であなたを噛んでいきます。 – eis
ありがとう、私は古典的な方法(プッシュとディレクトリにプル)に行く:) – Zoloom