LoginSignup
1
0

More than 5 years have passed since last update.

GitHub Flow で master を汚さない開発を

Posted at

GitHub Flow を取り入れた背景

私は SIer で小規模チームを取りまとめています。ソースリポジトリは Git を使っていたのですが、ブランチを切らずに master のみで運用していました。

課題

master のみの運用だと正常動作しないコードが混入することもありました。

対応

なので、新機能開発やバグフィックスの際にはブランチを切って、レビューの通ったコードのみ master にマージするようにしました。マージ後はすぐにデプロイします。

GitHubFlow.png

成果

master をクリーンな状態に保てています。また、レビューにより若手メンバの育成にもなります。

できていないこと

  • プルリクエスト → 席が近いので、口頭で対応しています。
  • テストコードを書くこと → 今後、ソースが大きくなると不可欠なのですが、現時点ではテストコードをかけてないです。
  • デプロイの自動化 → 手作業が混ざってます。

品質や費用対効果を見ながら施策を打つ必要がありますが、テストコードくらいは書かないとなーと思っています。

コマンド

よく忘れるので、いつどのようなコマンドを実行するかも一通り書いておきます。

新機能の開発やバグフィックスをする時

branch を切って開発します。ブランチ名は何をするかがわかるような名前にします。次のコマンドでブランチを切りつつ、ブランチに移動します。

$ git checkout -b ブランチ名

定期的に push します。一通り書けたらレビューアに声がけする運用にしています。

$ git push origin リモートブランチ名

他の開発者やレビューアが pull する時

まず、ブランチを切り、ブランチに移動します。

$ git checkout -b ブランチ名

そのブランチ上で pull します。

$ git pull origin リモードブランチ名

なお、この状態からコミットを行なって push したい場合は次のようにローカル、リモートの両ブランチを指定する必要があります。

$ git push origin ブランチ名:リモートブランチ名

レビューが通って、マージする時

master に移動します。

$ git checkout master

マージします。

$ git merge ブランチ名

master を push します。

$ git push origin master

最後に

上記の施策は何ちゃって GitHub Flow ではあるのですが、以下の効果が出ています。

  • master をクリーンに保つ
  • レビューにより、若手メンバの育成

シンプルなフローなので、覚えることが少なくすぐ取り入れられる施策でした。とはいえ、開発効率をスケールさせつつ品質を保つにはその他の自動化も推進しなければ!と思っています。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0