Git バージョン管理システム

GitHub 公式
GitHub(ギットハブ) 公式サイト 日本語版.

 

 

Gitバージョン管理とは?

 

ソースコードのバージョン管理システム。

 

「プルリクエスト(pull request)」という仕組みが特徴っぽいです。
「ブランチ」「マージ」「コードレビュー」という用語も頻繁に出てきます。

 

GitHub(ギットハブ)という、公開サーバ上でオープンソースなどをバージョン管理するサービスが有名ですが、企業向けに企業内サーバで管理するサービスがあります。

 

Gitのバージョン管理の仕組みをざっくり絵にしてみました。
バージョン管理しない状態、旧来のバージョン管理の仕方と比べて説明します。

 

バージョン管理しない状態

バージョン管理なし

 

複数で開発をおこなう場合、バージョン管理していないと「誰かの修正箇所を上書きしちゃった」という事故が起こりがち。

 

ひとりだけで開発している場合でも、何かの拍子にバージョンが戻っちゃった!?ということが起こり得ます。

 

古いタイプのバージョン管理

SVN(サブバージョン)などを使ったイメージ。
古いバージョン管理

 

修正中は、ソースがロックされて編集者以外触れなくなるので「上書き事故」は防げます。

 

ただし、ソースを編集するAさんの責任が重大に。

 

「はやく修正しろ、スケジュールが遅れる」
「テストはしっかりやれ、他に迷惑がかかる」
「なんでこんなバグを出した、今後の事故防止のために原因を述べろ」

 

うっ…書いてて胸が痛くなってきました。

 

この仕組みだと、Aさんが超絶忙しいけど、Bさんの手が空いてる…ということもちょくちょく起こります。

 

小〜中規模はこれで良いかも知れませんが、大規模だとツライ。

 

Gitのバージョン管理

Gitのバージョン管理

 

ブランチというのは、その時点のソースコード全体を「自分専用バージョン」のように扱うこと。
これにより、同時に多人数で同じソースを修正可能になります。

 

その後、プルリク(Pull Request)をして、自分のブランチをおおもとのソースコードにマージ(反映)してもらいます。
マージには担当者がいて、ソースコードの修正前後を見てレビューしてからマージ。

 

このため、修正内容を最低二人以上でチェックすることになり、責任の重さを分散するとともにバグの発生を抑えられます。
多人数でソースを修正可能になるため、メンバーへの負荷を分散できるのもポイント。
※ただし、同じソースの同じ箇所の修正ができるわけじゃありません。

 

デメリットは…

  • 他人のソースをレビューするなんて仕事が増える
  • マージ係を置くなんて、コストがかかる
  • 今まで暇で楽だったのに、作業を細分化されて仕事が増えてイヤ

…という人から抵抗されるという点。かも。

 

Gitをゼロから理解するには?

知識ゼロの状態から、Gitを理解するための良記事をまとめました。
上から順番に読むと、徐々に理解が進むと思います。

 

デザイナのためのGit入門
「バージョン管理って何のためにすんの?」というところから、GITの便利さまでザックリわかるスライド。
デザイナー向けに、コマンドなどを排除して解説しているのでイメージがつかみやすいです。

 

「うわっ…私のバージョン管理、ダメ過ぎ…?」を解決するGitの使い方“超”入門 (1/3):かんばん!〜もし女子高生がRedmineでスクラム開発をしたら(5) - @IT
女子高生の会話風にGitの使い方を説明している記事。

 

イラストでわかる!git入門の入門 - アシアルブログ
味のある手書きイラストで、バージョン管理に必要な内容を解説しているブログ。

 

サルでもわかるGit入門 ?バージョン管理を使いこなそう? | どこでもプロジェクト管理バックログ
初心者向けにわかりやすい猿のイラストつきで、Gitを解説している良記事。

 

こわくない Git
コマンドの使い方にまで踏み込んだ、詳細なスライド。