【Git】Gitを知ろう! 昔のソース管理とGit

社内では当然のように皆がGitを使っています。
私は最近入社しました。もともと設計や分析をメインとし、プログラミングは小さなWindowsバッチやJavaプログラムを作成していたくらいです。
そもそもGitを知っているようで知らなかったのです。というわけで、Git初心者がGitを使いこなせるようになるぞ!ということで始めて行きますが、生暖かく見守っていただけたらと思います。

昔はVSSやCVS、SVN(正しくはSubversionですが以降SVNと表記します)なんかを使ってはいたのですが、いざGitを利用しようとすると混乱してしまうことが多々ありました。
それぞれ使い方や違いを整理し、Gitを深く知っていこうと思います

1.仕組みの違い


前述の通り、代表的なものとしてはVSSCVSSVNなんかがあります。
筆者はVSS、SVNを利用していました。そして昨今はGitに手を付けています。
それぞれの特徴と違いをまとめてみました。

  VSS CVS/SVN Git
排他制御 悲観的排他 楽観的排他 楽観的排他
リポジトリ 集中リポジトリ 集中リポジトリ 分散リポジトリ


悲観的排他・・・ファイル更新を行おうとする時にそのファイルの更新権を取得(ロック)してから行うことにより、同時に複数人が同じファイルを更新することを抑止する方法
楽観的排他・・・同時に複数人がそのファイルを更新することは稀であり、更新が競合してしまった場合、その時に考える(マージ、破棄等)方法
集中リポジトリ・・・ひとつのリポジトリに複数人が接続し利用する方法
分散リポジトリ・・・各個人がリポジトリを持ち、任意のタイミングで同期する方法

イメージとしては下図になります。

2.用語の違い


それぞれ基本的な用語の違いを確認します。

  VSS CVS/SVN Git
チェックアウト リポジトリのソースコードのロック リポジトリの作業コピー取得 ブランチの切り替えと作業コピー取得
チェックイン リポジトリへの反映
コミット リポジトリへの反映 (ローカル)リポジトリへの反映
ブランチ 履歴の流れを記録するもの
※仕組みはタグと同じ
履歴の流れを記録するもの
※仕組みはタグと同じ
履歴の流れを記録するもの

3.まとめ


ごくごく簡単にですが、これまで利用していたソースコード管理の違いを整理してみました。
ソースコード管理ツールはそれぞれにメリットもありデメリットもあります。
言語やIDE、フレームワークや使い方で適切なものを選択することができれば良いです。
Gitの本格的な利用と理解はこれからになりますので少しずつでも先輩方に追いつかねば!

前へ

【Laravel】 Tinkerで手軽にDB操作

次へ

【JavaScript】 Promiseを一から学ぶ Promiseで作るモダンな非同期処理