業務用IT機器の通販サイト
カゴの中を見る

gitによる管理とリリース運用

2009/12/16更新 – ma2shita

記載内容については利用規約:第14条「責任事項」に則っております。要するに At Own Your Riskです。また、本ページにおいては問い合わせは受け付けておりません。問い合わせないでください。担当が泣き、公開を止めてしまうかもしれません。

目的

リリースを簡単に行いたい。

  1. 気軽なcommit、push
  2. 明確なリリース方法
  3. リリース後の問題発覚への迅速な対応

タグ規則

タグはリリースに利用します。

フォーマット : vX

vは固定、X=1からの連番でつけてください。連番はgit tag -l で確認できます。

個人で利用するタグ

タグはプレフィックスを決めた上で、自由につけてOKです。

  • ma2shita = ma2
  • kno = kno

ブランチ運用の判断基準

いづれかに該当したら、ブランチを作ってください。

  • 当初から開発期間が1週間以上になりそうだと判断した場合
  • master直接で開発を開始し、1週間以上経過した時点

ブランチ名は適宜決めて。

実運用

新規開発開始

$ git clone git://git.sv.plathome.co.jp/REPO

開発ルーチン (master直接)

## 開発 dev$ git pull dev$ git checkout master [開発] ↑↓ dev$ git commit (テストできる状態になったら) dev$ git push (テスト対象リビジョンとして、リビジョン番号をテスト担当に伝える) ## テスト test$ git fetch test$ git checkout テスト対象リビジョン if [テスト] test$ git tag リリース対象タグ test$ git push --tags (リリース対象タグとして、タグ名をリリース担当に伝える) else test$ git checkout 最後のリリース対象タグ #git tag すればわかります ["開発"に戻す] end (タグ付けはdevで行っても良いですが、タグ付け対象リビジョンを間違えないように気をつけてください。) ## リリース stage$ git fetch stage$ git checkout リリース対象タグ

開発ルーチン (branch利用)

## 開発 dev$ git pull dev$ git checkout -b ブランチ名 [作業開始対象のtag名・branch名・リビジョン番号] #ex.) git checkout -b hoge master #ex.) git checkout -b hoge v1.0 #ex.) git checkout -b hoge 34de380 [開発] ↑↓ dev$ git commit (テストできる状態になったら) dev$ git push --all #(他者がmasterをeditしている場合、masterへのpushがrejectされることもあるが、無視でOK) (テスト対象リビジョンとして、リビジョン番号をテスト担当に伝える) ## ブランチテスト(バイパスしてもいいよ) test$ git fetch test$ git checkout テスト対象リビジョン if [テスト] (マージ対象リビジョンとして、リビジョン番号をマージ担当に伝える) else test$ git checkout 最後のリリース対象タグ #git tag すればわかります ["開発"に戻す] end ## マージ dev$ git checkout master dev$ git pull dev$ git merge マージ対象リビジョン if [コンフリクト] 解消して $ git add . $ git commit end dev$ git push --all (テスト対象リビジョンとして、リビジョン番号をテスト担当に伝える) ## テスト test$ git fetch test$ git checkout テスト対象リビジョン if [テスト] test$ git tag リリース対象タグ test$ git push --tags (リリース対象タグとして、タグ名をリリース担当に伝える) else test$ git checkout 最後のリリース対象タグ #git tag すればわかります ["開発:テストでだめだったら"] end (タグ付けはdevで行っても良いですが、タグ付け対象リビジョンを間違えないように気をつけてください。) ## 開発:テストでダメだったら dev$ git checkout master dev$ git pull dev$ git checkout ブランチ名 dev$ git merge master [開発] ↑↓ dev$ git commit (テストできる状態になったら) dev$ git push --all #(他者がmasterをeditしている場合、masterへのpushがrejectされることもあるが、無視でOK) (テスト対象リビジョンとして、リビジョン番号をテスト担当に伝える) ## リリース stage$ git fetch stage$ git checkout リリース対象タグ テスト、リリースは、ブランチ運用、そうでない運用共々作業は同じです。 ## 後片付け dev$ git checkout master dev$ git branch -d ブランチ名 dev$ git push origin :ブランチ名