現在、git を使用してプロジェクトを本番環境にデプロイgit push production master
し、次の post-receive フックを使用してリポジトリを使用しています。
#!/bin/bash
GIT_WORK_TREE=/home/username/www.example.com/myproject/ git checkout -f
production
経由で追加されたリモートgit remote add production ssh://server/home/username/projects/myproject.git
です。
しかし、サーバー上の別のパスに別のブランチをデプロイする必要があります。解決策は思いつきましたが、もっと良い方法があると思います。
私がしたことは、サーバー上に新しいリポジトリを作成することmyproject-alternate.git
でし/myproject/
た. これで、 を使用して代替パスにデプロイできます。/myproject-alternate/
git remote add alternate ssh://server/home/username/projects/myproject-alternate.git
git push alternate branchname:master
これは機能しますが、いくつかの問題があります。
- 代替サーバーにデプロイするコマンドは、私が期待していたものではありません。最後に を何度も忘れて
:master
しまい、サーバーのリポジトリが新しいブランチを受け取り、post-receive フックがトリガーされませんでした。 - サーバー上に新しいリポジトリを作成することが最善の解決策であったかどうかはわかりません。また、より大きなプロジェクトではどうなるのだろうかと思います。
上記の問題なしでこの展開フローを達成する他の方法はありますか? 受信したブランチ名を使用して正しいパスにデプロイする、より良い受信後のフックでしょうか? (これは可能ですか?)