私は Git (およびその点で VC) にまったく慣れておらず、ブランチを使用した Dev>Staging>Live ワークフローの背後にある概念を理解するのに少し苦労しています。
このワークフローの一部を適用しようとしています。これは、固定ステージングの代わりに開発ブランチとリリースブランチを使用します。
Git を使用する前は、SVN を使用して「同じ」ワークフローを使用していました。ただし、ステージごとにブランチを作成する代わりに、個別のリポジトリを使用しました。ブランチを適用しようとしているので、少しぼやけています。
ワークフローの背後にある考え方は理解できますが、技術的な観点からは理解できません。
それを作成するために私が従っている手順:
フォルダーの作成
user:/var/www/$ mkdir dev.example.local
user:/var/www/$ mkdir staging.example.local
user:/var/www/$ mkdir example.local
リポジトリの初期化
user:/var/www/example.local$ git init
user:/var/www/example.local$ git remote add origin git@bitbucket.org:user/example.com.git
user:/var/www/example.local$ echo "README" > README
user:/var/www/example.local$ git commit -am "First"
user:/var/www/example.local$ git push origin master
user:/var/www/example.local$ cd ../dev.example.com
user:/var/www/dev.example.local$ git clone git@bitbucket.org:user/example.com.git .
user:/var/www/dev.example.local$ git checkout -b dev
user:/var/www/dev.example.local$ git push origin dev
user:/var/www/dev.example.local$ cd staging.example.com
user:/var/www/staging.example.local$ git clone git@bitbucket.org:user/example.com.git .
開発ブランチでのいくつかの作業
user:/var/www/dev.example.local$ echo "New" > newfile
user:/var/www/dev.example.local$ git add .
user:/var/www/dev.example.local$ git commit -am "Some new file"
user:/var/www/dev.example.local$ git push origin dev
新しいリリースの準備ができたら
user:/var/www/staging.example.local$ git fetch
user:/var/www/staging.example.local$ git checkout -b release-0.1 dev
user:/var/www/staging.example.local$ git push origin release-0.1
user:/var/www/staging.example.local$ cd ../example.com
user:/var/www/example.local$ git fetch
user:/var/www/example.local$ git merge --no-ff origin/release-0.1
user:/var/www/example.local$ git tag -a "0.1"
user:/var/www/example.local$ git push origin master
user:/var/www/example.local$ cd ../dev.example.com
user:/var/www/example.local$ git merge --no-ff master
user:/var/www/example.local$ git push origin dev
私は正しい手順に従っていないと確信しています。では、「正しい方法」は次のとおりです。
- dev、staging、liveフォルダーを作成し、それぞれに git リポジトリを初期化しますか?
- 新しいリリースをチェックアウト/マージしますか?
- リリースからライブにマージしますか?
- 環境全体を作成しますか?
と:
- これらの git コマンドはどこで実行すればよいですか? 私のローカルレポで?ステージごとに?
関連情報:
- ビットバケットを使用しています
- これはウェブサイト(Drupal)開発用です
- 私のマスターブランチはライブステージです
- 同時に 3 人ほどの開発者が働いており、それぞれの国が異なります。