s21gブログではmasterの他にdeployブランチがあり、下記のようなフローで運用しています。
- 普段はmasterにpushして
- deployできる状態になったらdeployにmasterの変更を反映
- deployをpush&cap deploy
ローカルでもdeployブランチとすればよかったのですが、ローカルを意識したいのでlocal_deployという名前にしてみました。そのことで勉強になったので、書いてみたいと思います。
1 git branch -a
2 * master
3 origin/HEAD
4 origin/deploy
5 origin/master
1 git branch local_deploy origin/deploy
2 git branch -a
3 git checkout local_deploy
また下記のコマンド1つで、ブランチを作ってcheckoutまでをやってくれます。
1 git checkout -b local_deploy origin/deploy
git checkout -b <new> <start-point>
create a new branch <new> referencing <start-point>, and check it out.
http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#manipulating-branches
1 git checkout master
2 git pull --rebase -v
3 git checkout local_deploy
4 git merge master
5 git push origin local_deploy:refs/heads/deploy
git merge masterの前後でちゃんとファイルが変更されているか見てみましたがちゃんとmergeできていました。また、pushの際のsrc:dstの指定の仕方がこのままでは面倒なので調べて後日また書いてみようと思います。
コンフリクトした時は修正後コミットし、上のpushコマンドを発行すればokです。
1
2 git add some.file
3 git commit -m "merged from master"