いろいろな方々とお話していると、「Gitでバージョン管理をしてみたい!」というような意見を多く聞きます。(Qiitaユーザーは「すでに使ってるよヽ(´ー`)ノ」という方が多いとは思いますが…)
今回は、キャリア1年未満の時にgitの社内での運用についていろいろと制定していた際に、勉強した記事(+α)などを紹介したいと思います。
##読んでほしい方
- gitをチームでこれから導入しようとしている方
- とりあえずgitを使ってみて、突っ走ってしまい、意味の分からないブランチが乱立したりして、運用に困っている方
- 新入社員の方など、バージョン管理って何なんだろうと思っている方
#そもそもGitとは?基本的な使い方は?
Gitを使うと何ができるのか、それを基本的にどう動作させるのかを修得するためのサイトです。
まずは以下のサイトを読んだり触ったりしてみることからはじめました。
##概要や使い方とその解説
##Web上でチュートリアルができるサイト
このサイトは、ひとつひとつコマンド入力と図解をしてくれるのでとってもオススメです!
#Gitのフローに関して
##なぜGitのフローの統一が必要??
gitは便利な反面、しっかりと運用をしなければ、以下の様な問題点が表出してきます。
###問題点
- 各々の開発者が、各々自由にでブランチを切ったりして、リポジトリのブランチが乱立したりする
- 各々の開発者が、各々自由にPush等をしたりして、現在のソースコードの状況がつかめなくなる
ルールの上でGitを利用すると、とてつもなくソースコードの管理がしやすくなります。
上記のような問題点を起こさないためにも、以下の様な記事を読んで、チームに合ったものを適用させるのが良いかと思います。
##Gitの運用方法の種類と、その解説に関する記事
この記事を読むだけでも、様々なGitの運用方法が分かります。
##Gitの各種運用方法のメリット、デメリットの比較に関する記事
Git Flow vs Feature Branch Frow(GitHub Flow)な記事
##ちょ〜簡単に各Gitの運用方法のメリット・デメリット(個人的な意見を含む)
###〜 Git Flow 〜
- [メリット]開発中(developブランチ)、バグ修正(hotfixブランチ)、リリース前(releaseブランチ)等の状況把握がしやすく、大規模開発でも管理が可能
- [デメリット]すこしフローが複雑になっている
###〜 GitHub Flow (Feature Branch Flow) 〜
- [メリット]手順がシンプルで、すべてが同じプロセスなので、素早く修正し、再デプロイできる。
- [メリット]共有リポジトリにソースがあるので、手元にソースを引っ張ってきてレビューも可能(IDEとかでレビューしたい人もいると思うので。)
〜Forking Flow(個人リポジトリ利用)〜
- [メリット]チームでの共有リポジトリをブランチの乱立で汚さない。
- [メリット]プルリクエストの徹底により、ソースレビューをよく行う習慣がつく。
- [デメリット]プルリクエスト時点では、共有リポジトリにソースがマージされていないので、個人リポジトリのパーミッションをわざわざ設定しないと手元にソースを引っ張ってきてレビューができない。(IDEとかでレビューしたい人もいると思うので。)
#所感
Gitはすごく便利で、使い方をチームでうまく決めてしまえば、とてつもなく便利なツールになります。フローは様々な種類がありますが、チームやビジネスの状況に合う合わないはあると思うので、いろいろ考慮しつつフローを決めるのが良いと思います。
#読んでいただいた方へ感謝
読んでいただきありがとうございます。まだ新卒で入社してキャリア1年ほどのエンジニアなので、色々とアドバイス等いただけると嬉しいです!
http://qiita.com/h0ng0yut0