ksaitoの日記

日々試したことの覚え書き

Git入門

移転しました。

自動的にリダイレクトします。

Gitは、分散バージョン管理システムです。
Linuxカーネルソースを管理していることで有名です。
分散バージョン管理システムは、cvsSubversionの進化系です。
ちょっと話がそれますが、分散バージョン管理システムには、Git以外にbazaar, Mercurialといったものがあります。
自分の中では以下の点でbazaarが好きです。

  • 日本語を正しく扱うので文字化けで悩まなくて済む
  • cvsSubversionなどのセンターリポジトリと親和性が良い

ローカル環境で、色々と試行錯誤したい時には、どうしてもローカルでコミッしたくなります。(Subversion全盛期は、svkとか試しましたが設定やブランチの管理にとても手間がかかりました。)
ローカルでやったことは、センターリポジトリにシームレスに戻したいに手間をかけずに答えてくれるのがbazaarなので...

しかし、Xcode4は、bazaarではなくGitをサポートしました。
ということで今回は、Gitに入門します。

インストール

Ubuntu/Debian環境では、git-coreというaptパッケージをインストールします。
現在使えるのは、1.7.0.4のようです。

$ sudo apt-get install git-core
$ git --version
git version 1.7.0.4
$

リポジトリの作成

リポジトリの作成は、git initコマンドを使います。

$ mkdir gittest
$ cd gittest
$ git init
Initialized empty Git repository in $HOME/gittest/.git/
$ 

リポジトリは、トップディレクトリの.gitです。
cvsSubversionは、SCCSやrcsを真似てバージョン管理されている各ディレクトリに.cvsや.svnといったディレクトリを作成します。また、リポジトリはセンターにありインポートしたファイルはチェックアウトしないといけないという決まりがあります。
/etcファイルのようにバージョン管理したいけど、一度チェックアウトし直すようなことができないファイルでもバージョン管理することができます。
また、ある日突然、「バージョン管理するのはやめよう」といった場合でもトップディレクトリの.gitを消すだけなので気軽です。

使い方

今日は時間切れ...
svnとだいたい同じです。
add/co/commit/log/updateは同じです。
branch/merge/push/pullといったコマンドが重要となります。