社内では当然のように皆がGitを使っています。
私は最近入社しました。もともと設計や分析をメインとし、プログラミングは小さなWindowsバッチやJavaプログラムを作成していたくらいです。
そもそもGitを知っているようで知らなかったのです。というわけで、Git初心者がGitを使いこなせるようになるぞ!ということで始めて行きますが、生暖かく見守っていただけたらと思います。
昔はVSSやCVS、SVN(正しくはSubversionですが以降SVNと表記します)なんかを使ってはいたのですが、いざGitを利用しようとすると混乱してしまうことが多々ありました。
それぞれ使い方や違いを整理し、Gitを深く知っていこうと思います
仕組みの違い
前述の通り、代表的なものとしてはVSS、CVS、SVNなんかがあります。
筆者はVSS、SVNを利用していました。そして昨今はGitに手を付けています。
それぞれの特徴と違いをまとめてみました。
VSS | CVS/SVN | Git | |
排他制御 | 悲観的排他 | 楽観的排他 | 楽観的排他 |
リポジトリ | 集中リポジトリ | 集中リポジトリ | 分散リポジトリ |
悲観的排他・・・ファイル更新を行おうとする時にそのファイルの更新権を取得(ロック)してから行うことにより、同時に複数人が同じファイルを更新することを抑止する方法
楽観的排他・・・同時に複数人がそのファイルを更新することは稀であり、更新が競合してしまった場合、その時に考える(マージ、破棄等)方法
集中リポジトリ・・・ひとつのリポジトリに複数人が接続し利用する方法
分散リポジトリ・・・各個人がリポジトリを持ち、任意のタイミングで同期する方法
イメージとしては下図になります。
用語の違い
それぞれ基本的な用語の違いを確認します。
VSS | CVS/SVN | Git | |
チェックアウト | リポジトリのソースコードのロック | リポジトリの作業コピー取得 | ブランチの切り替えと作業コピー取得 |
チェックイン | リポジトリへの反映 | - | - |
コミット | - | リポジトリへの反映 | (ローカル)リポジトリへの反映 |
ブランチ | 履歴の流れを記録するもの ※仕組みはタグと同じ | 履歴の流れを記録するもの ※仕組みはタグと同じ | 履歴の流れを記録するもの |
まとめ
ごくごく簡単にですが、これまで利用していたソースコード管理の違いを整理してみました。
ソースコード管理ツールはそれぞれにメリットもありデメリットもあります。
言語やIDE、フレームワークや使い方で適切なものを選択することができれば良いです。
Gitの本格的な利用と理解はこれからになりますので少しずつでも先輩方に追いつかねば!