私はウェブサイトを開発したいと思っており、すべての作業はリモートで行われます(ローカル開発サーバーはありません)。これは、共有ホスティング会社a2hostingが特定の構成(symfony、mysql、git)を持っているためです。リモートで、またはnetbeansリモート編集機能を使用してsshおよび開発できる場合、複製に時間をかけたくありません。
私の質問は、gitを使用して自分のサイトをライブ、ステージング、開発の3つの領域に分割する方法です。
ここに私の最初の考え:
gitによるバージョン管理:
初期設定:
cd public_html
git init
git add *
git commit -m ‘initial commit of the site’
cd ..
git clone public_html testing
mkdir dev
開発:
cd /dev
git clone ../testing ticket#
all work is done in ./dev/ticket#,
then visit www.domain.com/dev/ticket# to visually test
make granular commits as necessary until dev is done
git Push Origin master:ticket#
if the above fails:
merge latest testing state into current dev work: git merge Origin/master
then try the Push again
mark ticket# as ready for integration
統合および展開プロセス:
cd ../../testing
git merge ticket# -m "integration test for ticket# --no-ff (check for conflicts )
run hudson tests
visit www.domain.com/testing for visual test
if all tests pass:
if this ticket marks the end of a big dev sprint:
make a snapshot with git tag
git Push --tags Origin
else
git Push Origin
cd ../public_html
git checkout -f (live site should have the latest dev from ticket#)
else:
revert the merge: git checkout master~1; git commit -m "reverting ticket#"
update ticket# that testing failed with the failure details
スナップショット:
主要な展開スプリントにはそれぞれ標準名を付け、追跡する必要があります。
サイトを以前の状態に戻す
何か問題が発生した場合は、以前のスナップショットに戻り、dev#で新しいチケットを使用して問題をデバッグします#。バグが修正されたら、展開プロセスを再度実行します。
私の質問:
はい、ワークフローは理にかなっています。私が得られない唯一のことは、別個のテストプラットフォームの必要性です。つまり、テストチームが自分のプラットフォームを提供するのに役立ちますが、それがあなただけの場合は便利ですか。そんなにない。私見、小規模な開発チームにとって、この種のことは不要であり、面倒になります。
ここで明らかなことを提案します(そして、撃downされる準備はできています)が、 git-revert はどうですか?