★★★ Twitterやってます。フォローして頂けると嬉しいです(*^^*) ★★★
この記事にはプロモーションが含まれていることがあります

CVS/SVNとGitを比較して理解してみよう

IT
スポンサーリンク

CVS/SVNとGitを比較して理解してみよう

前回の記事はいかがでしたでしょうか。とりあえず、この辺までわかれば、一旦最新の資材が手元で確認できる状態になると思います。

前回の記事はこちら。

Gitから入った方は、特に違和感なく、このまま知識を深めて行ってもらえば良いと思います。

さて、CVS/SVNからの方は、もやもやが残っていると思います。私がCVSからGitに挑戦した時に感じた戸惑いポイントについて、いくつか紹介したいと思います。

比べてみる

なかなか両方を並べている説明がなくて苦労したので、ちょっと作ってみました。

  1. サーバで集中管理(リポジトリ)している場所から資材一式をローカルに落としてくる最初の作業です。CVS/SVNでは「チェックアウトGitでは「クローンに該当します。
  2. 一度リポジトリとローカルのファイルを同期した後は、変更差分のみを取り出すことが可能です。CVS/SVNでは「チームを指定して更新Gitでは「プルに該当します。
  3. ローカルで編集した資材をリポジトリに登録することが可能です。CVS/SVNとGitどちらも「コミットに該当します。

コミットの部分は同じですが、Gitの場合はコミットの前後に1ステップずつあるところがわかりにくいポイントです。
Gitの場合は、③の資材をリポジトリに登録する流れが3つに分かれます。

  1. ステージングエリアに追加
  2. ローカルリポジトリにコミット
  3. リモートリポジトリにプッシュ

Sourcetreeの場合、2と3を同時に行うこともできます。

ローカルにもコミットできるリポジトリがある

CVS/SVNは中央集中管理型バージョン管理システムです。資材一式をサーバ側のリポジトリで一元管理するため、直接サーバのリポジトリにコミットします。

対してGitは分散型バージョン管理システムです。ローカルにもコミットできるリポジトリがある点が異なり、ここのイメージが沸かないとコミットしたけど、プッシュし忘れて、周りから資材あがってないよーと言われてしまいますので要注意です。

ブランチの取り扱いは一緒!?

ブランチという名前と意味は同じですが、ブランチを切るタイミングがCVS/SVNとGitでは異なるため、ここがもやもやポイントです。

CVS/SVNでブランチを作成する時は、暖簾分けなどで大きな支流ができる場合に限るので、なかなかレアなイベントなのですが、Gitだとちょっとした修正の度にホイホイとブランチを切って、完了したらマージします。

ばったん
ばったん

まだ私がGitを知らなかった頃、Git上がりのライブラリアンにCVSの管理を任せたら、ブランチを切れらまくって、こんな猛者がいるのかと驚愕したことがありますが、Gitを知るとあー、なるほど、という感じです。

origin、master、developって何さ

この辺はGit固有ですので、こういうものなんだ、と認識すればOKです。

  • origin:リモートリポジトリのこと
  • master:ベースのブランチ
  • develop:主に開発時の主流となるブランチ

CVS/SVNのリポジトリの最新資材は、Gitのmasterブランチに該当します。但し、Gitの場合は開発中などはdevelopブランチが最新だったりします。この辺はブランチの運用ルールによって異なります。

ここまで読むとライブラリアンの方はピンとくると思いますが、ブランチをみんなが自由に作ったらめちゃくちゃになるぞ・・・

はい、そのとおりです。そのため、Gitを運用していく上では、一定のルールを決めてブランチを作成するのが一般的です。主によく採用されているのは、git-flowモデルです。

他にもいくつかブランチモデルがありますので、適切なものを使うようにしましょう。

.cvsignoreみたいなものある?

.gitignoreがあります。書き方はこんな感じです。

# 拡張子 bak は除外
*.bak

# oldフォルダは除外
old/

# oldフォルダは除外したけど、その中のhoge.txtは除外したくない
!hoge.txt

# ルートフォルダにある.lockファイルは除外
/.lock
スポンサーリンク

まとめ

まずはこの辺を押さえておけば、とっかかりにはなると思います。あとは、おすすめの書籍を紹介しますので、理解を深めて行ってください。

おすすめ書籍の紹介コーナー

エンジニアはもはやGitを避けて通れない状態です。かつてバリバリに開発していた時代のバージョン管理はCVS、SVNだったので、最初Gitには抵抗がありましたが、使ってみると便利です。私のお気に入りの本をいくつか紹介します。

まずGitの概念を学習するには、有名なこの一冊です。サルでもわかるので人間の我々が理解できないはずがありません。

実際に使うシーンに合わせた説明やSourceTreeについても書かれています。こんな時どうすればよいかという点も書かれておりわかりやすい一冊です。

自己学習で限界を感じている方は、オンラインでレッスンを受けられるサービスもありますよ。
<PR>

コメント

タイトルとURLをコピーしました