Gitを始めよう!(入門)
4min
Gitの優れている点

Gitを使用するメリット

Gitはプロダクトの開発を加速化させるツールです。プロダクトは通常複数人で開発します。また、1日で全てが完成するわけではなく、何日にもかけて開発するため、ファイルの作成・更新・削除を果てしなく繰り返します。

 よくあるケースとしては、プロダクトに重大なバグがあって、リリース前の状態に戻したいという時、バージョン管理ツールを使用しない場合どうなるでしょうか?
 「ファイル名_20180108_01」、「ファイル名_20180108_02」のように、日付と管理番号を付けたファイルをその都度作成するのは面倒でだるいですよね。また、"誰が"ファイルを編集したのかトレース(追跡)できるようにしたい場合、どうすれば良いでしょうか?(※ちなみに、筆者の前職では、ソースコードの頭に編集履歴をこまめに記入していました...なんという原始的な...)

 Gitならこのような悩みは全て解決できます。
・いつ、誰が、どのファイルのどの箇所を更新したのか履歴が保存される
・履歴には自動で番号が割り振られているため、過去の状態を参照したり戻すといったことも自由自在
また、複数人で開発をしている時に問題となりうるのが、同一のファイルを編集するようなケースです。同一のファイルの同一箇所を編集することを、"競合(conflict)"と呼びます。Gitでは、
・競合を可視化し、効率よく解決(resolve)できる
バージョン管理ツールを使用するメリットはわかったね。
次は、他のバージョン管理ツールと比較するよ。
Octocat

分散型 vs 集中型

Gitは分散型バージョン管理システムです。それに対して、SVN(Subversion)は、集中型バージョン管理システムです。集中型では、ファイルを管理するホストサーバを持ちます。(下図参照)
Dummy
分散型では、各自が中心となるリポジトリのクローンをローカルに持っています。
 これにより、
・ネットワークにアクセスできない状態でも開発を続けることができる
・各人が分散してソースコードを持っているため、障害の発生により復旧できないというリスクが限りなくゼロ
というメリットがあります。
Dummy
例えば、wifiをうっかり忘れてネットワークに接続できない状況でも、Gitならローカルで問題なく開発を続けることが可能です。
Gitはとても便利なツールだね!
次回はGitを習得するための心構えについて説明するよ!
Octocat
Gitを習得するには?