こんにちは。Gitについての雑感です。
見積書、請求書、お客様への報告書などの作成といった普段の書類業務、ブログやQiitaの記事、小さいテストコード、テストプロジェクト、個人的な写真とか画像関連(といっても数100kb程度)をGitで管理しています。
正式に受注して開発する案件については、GitFlowとGitHub Flowを組み合わせたワークフローを使っています。
https://2017.l2tp.org/archives/470
色々と使ってみて思ったのは、ワークフローを段階的に導入するのが良いのかな、と思いました。
実際の段階としては下記の通りです。
- masterブランチのみで運用
一人で運用しているブランチで、書類、ブログ記事などのそもそもコンフリクトがほとんど発生しない場合、3日ぐらいで使わなくなりそうな小さいテストブランチです。 - master + developブランチで運用
2人でちょっとした開発を行うまではこれでいい感じです。お互いに同時に開発しても衝突しにくいですし、プル+マージで乗り越えられます。 - GitFlowを導入
developやmasterへのマージ、feature/releaseの導入です。3人を超える規模や正式なサービスとして運用を行う場合にはこれが良いです。
100コミット/週ぐらいになると衝突がおき始めるので次のフェーズに移行すると良いかと。 - GitHub Flowの導入
コードをマージする際にPR+レビューを入れています。規模が大きくなってくると、コードレビューがない状態でマージされると後から大変になることが多いです。
という感じですね。
振り返ると 1 -> 4にむけて、徐々に大きくしていく、というのが最初は手間を掛けず、段々と規模を大きくできるので良いかなと思いました。
そんな感じです!