2011年11月24日

Subversionユーザーがgitの考え方を勉強した

Subversionを使ってるのにワザワザGitを使おうと思ってる理由は下記の利点を享受する為。

・マスターリポジトリのログを綺麗にしたい!
 commitって意味のある単位でするのがベストだとは思うけど、バックアップの意味合いもあってコミットする時もある。そうするとログが大量になってもう読む気なくなる。
・変更更新を早くしたい!
 サーバーへのコミットって重いじゃないですか。
・気軽にbranchとかtagとか使いたい!
 ローカルリポジトリでbranch,tagが作ったり削除したりできる。
・コミットの制御が柔軟にしたい!
 「あっち直してー、こっち直してー。でも今日提出あるからねー」とかあるわけですよ。Gitだと「インデックス(staging area)」を上手く使えば柔軟に制御できそう。


Gitに関してはWeb上に山ほどArticleがあるので、超ざっくり自分メモ。

Gitの構成要素


・マスターリポジトリ
 みんなで使う大元のリポジトリ。Subversionでのリポジトリと思ってOK
・ローカルレポジトリ
 個人が使うリポジトリ。
・インデックス(staging area)
 ワーキングコピーの状態をインデックスという場所に格納する。ここからローカルリポジトリにコミットする
・ワーキングコピー
 実際にコーディングしたりファイルを追加したりする場所。Subversionのワーキングコピーと一緒

Subversionから「ローカルリポジトリ、インデックス」という要素が増えてますね。

Gitの手順


・マスターリポジトリ作る
Subversionだと「svnadmin.exe create . 」に該当
 

> git init

・「インデックス、ローカルリポジトリ、ワーキングコピー」の作成
Subversionだと「svn checkout file:///****/****」に該当

> git clone file:///***/****


・変更内容をマスターリポジトリに反映するまで
 1.ファイルを追加or更新する
  変更するファイルを作らないとしょうがない
 2.「ワーキングコピー→インデックス」の反映
  Subversionの場合はいきなりコミットでマスターリポジトリに反映ですが、Gitではまずインデックスに反映させます。

カレントディレクトリ以下の全てのファイルの変更&追加をインデックスに反映

> git add .

 3.「インデックス→ローカルリポジトリ」の反映
  次に、ローカルリポジトリに変更を反映させます。

  

> git commit -m "test commit"

4.「ローカルリポジトリ→マスターリポジトリ」の反映
後は最後にローカルリポジトリ→マスターリポジトリをすれば終了

  

> git push
  


めんどーーーーい。Subversionに比べてめんどーーーーーい。
・変更内容をマスターレポジトリから取得する
朗報。コレはコマンド一発。

> git pull

Subversionでいうupdate

Subversionとの用語差分


Gitをお勉強しているとSubversionと同じ用語で意味が違うのがいくつかあって混乱するので主なものをまとめてみた。
・add
Subversion:「ワーキングコピー→マスターリポジトリ」のファイル追加
 Git:「ワーキングコピー→インデックス」の状態登録
・commit
Subversion:「ワーキングコピー→マスターリポジトリ」の変更登録
Git:「インデックス→ローカルリポジトリ」の変更登録
・diff
Subversion:「ワーキングコピーとマスターリポジトリ」の比較
Git:「ワーキングコピーとインデックス」の比較(diff HEADでワーキングコピーとローカルリポジトリ)
・checkout
Subversion:「マスターレポジトリ」から「ワーキングコピー」を作成する。(Gitだとcloneに該当)
 Git:ブランチの作成

とりあえずコレで最低限使えるのかな。ここまでだと、Subversionに比べてややこしいだけな感じだけど、各コマンドの詳細な使い方を勉強するとどんどん便利になっていきます。


【関連する記事】
posted by purigen at 11:00| Comment(0) | TrackBack(0) | Git | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。