質問: 3人程度でチーム開発する時、gitをどのように運用すれば良いのかわからずに困っています。 gitを使って開発したことがあるのですが ・業務系なので半年に1度程度しかリリースが発生しない ・サーバはmasterリポジトリだけでgitを運用 → ローカルでmasterからブランチを作成し、修正は新しく作成したブランチへコミットしています。 その後、ローカルのmasterへマージし、サーバのmasterへpushしていました。 という運用でした。 元々、svnを使っていたので、それをそのままgitに移行しただけになってしまいました。 git-flowやgithub-flowを導入しようとしたこともあるのですが、敷居が高く導入することが出来ませんでした。 masterだけでgitを運用すると、開発の生産性が下がる気がします。 少人数で開発する時、gitをどのように運用しているのでしょうか?
回答: 理想はgit-flow運用ですからね...... スキルの高いエンジニアにとっては速度やセキュアのバランスが取れているgit-flow運用を好みます。 敷居が高いとは思いますが、意味がある運用ですし頑張ってみては? あとは、それを少人数という理由でどこまで崩すかという差だけです。 DB設計の第三正規形を速度の為にどこまで削るのかと似ていますね。 概念が難しいからと何も考えずに第三正規形を崩すとプロジェクトが空中分解するのと同じことです。 まぁ、散々脅しましたがそのままでも良いかとは思います。 Gitは他のバージョン管理システムと比較して、 マージが賢いので並列開発ができるだけでも十分なメリットですからね。 改善するなら下記2箇所を取り組みましょう * リリースタイミングでタグを打つ * masterへマージする直前のdevelopmentブランチを用意して受け皿にする 大幅な改修やWIPのコミットの受け皿としてdevelopmentブランチは一つ欲しいですね。 大失敗してシステムが動作しなくなっても、developmentブランチを捨てるだけで済み、 masterの履歴には傷一つつかないので運用が楽です。 大部分は捨てたいけど、このコミットだけはmasterに含めたいというケースがありますが、 cherry-pickコマンドで個別にmasterに反映させることも可能です。 また、リリースタイミングでタグを打っておけば最悪の事態を回避するのに役立ちます。 戻りたいタイミングですぐに昔のバージョンに戻れるようになりますからね、運用が楽になります。