忍者ブログ
自分なりの目線で情報を発信します。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ソースコードのバージョン管理システム(VCS)として、
Gitを使い始めようと思います。
今までCVS,SVNの利用経験はあるのですが、Gitには手を出せずにいました。
同じような方も多いのではないでしょうか。
 
実際に使いながら、このブログも書きながら、Gitの概念に慣れていきたいと思います。
実際の使用に関する記事を書く前に、Gitに対する現在の理解をまとめておきます。
 
CVSやSVNと、Gitの大きな違いの一つは、
  • CVSやSVN
→集中型のVCS
  • Git
→分散型のVCS

ということです。
 
分散型ってどういうことよ?って話ですが、
要は、リポジトリをローカルで保持できるってことです。
 
集中型だと、1つのリポジトリに対してコミットやチェックアウトを行います。
作業対象となるのは、リポジトリからローカルにチェックアウトしてきたソースコードです。
これに対して分散型は、リポジトリ自体がローカルにあるわけです。
ですから、作業対象もコミット先もローカルに存在することになります。
それで何が嬉しいのかというと、
ネットワークにアクセスできない環境でも使える
ということです。
 
例えば集中型だと、
  • リポジトリにアクセスできない環境にいる
  • リポジトリのサーバーが稼動していない
などの理由でコミットができなくなります。
これに対して分散型の場合は、
ローカルにリポジトリがあるため、いつでもどこでもコミットができます。
バージョン管理に対する制約が少なくなるのですね。
 
といっても、
「集中型でも、とりあえずローカルで作業しておいて、
 リポジトリにアクセスできるようになってからまとめてコミットすればいーじゃん」
と思ったりもしました。
はい、これでも運用は可能かと思います。
 
ただ、リポジトリにアクセスできない環境にいる間にも開発を進める場合、
例えば以下のようなケースで困るのかなと思います。
  • 変更履歴を参考にしたくても見られない
  • とりあえずソースを修正→コミットしてみて、状況に応じてすぐに修正前に戻せるようにしておきたい
  • 必ず毎日コミットする運用をしたくとも、コミットできない日ができてしまう
  • リポジトリにアクセスできない期間だけ、コミットの粒度が変わってしまう
こう考えてみると、確かに分散型って便利だなーと感じます。
「いつでもどこでも作業できる」ってこういうことなのかと。
 
ここまでまとめてきて、
ローカルでリポジトリを保持するのはわかった。
でも、複数人で開発し、リポジトリを共有したい場合はどうなるの?
その場合1つのリポジトリを複数で使うのだから、結局集中型と同じじゃないの?
と一瞬思います。
 
確かに、複数人で開発するなら、リポジトリは共有しなければなりません。
その点では集中型と同じように感じるのですが、
分散型の場合は、ローカルのコミット履歴も含めて
共有リポジトリにプッシュできる点が異なるようです。
(このあたり理解が曖昧なので間違ってたらすみません)
 
つまり、共有リポジトリにアクセスできない環境にいる間にも作業が進んだ場合、
集中型だと1回分のコミット履歴しか残せませんが
(共有リポジトリにアクセスできるようになってからのコミット)、
分散型だとローカルのコミット履歴をまとめて共有リポジトリに残せます。
 
しかも、集中型だと共有リポジトリへのコミットは慎重さが求められますが、
分散型だとローカルリポジトリに気軽にコミットしまくって、
厳選されたもののみを共有リポジトリにプッシュすることができます。
 
以上のようなことから、「分散型は(集中型に比べて)いつでもどこでも気軽に使える」
ということが言われるのだと思います。
 
最後に、先ほど「プッシュ」という用語が何度が出現しましたが、
Gitの世界では、
  • コミット:ローカルリポジトリへのコミット
  • プッシュ:リモートリポジトリへのコミット
を指すようです。
 
現在のGitに関する大まかな理解はこんなところです。
次回から、実際のGitコマンドの実行法などまとめていきまーす。
 
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
お知らせ
プロフィール
HN:
shusatoo
性別:
男性
自己紹介:
基本PHP。JavaScriptちょっとだけ。Javaをほんの少し。
おすすめ本
最新コメント
[10/09 shusatoo]
[10/09 misney]
最新トラックバック
カレンダー
09 2017/10 11
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
ブログ内検索
カウンター
アク解アナライズ
バーコード
ビジター

Copyright © [ 開発メモるアル ] All rights reserved.
Special Template : 忍者ブログ de テンプレート
Special Thanks : 忍者ブログ
Commercial message : [PR]