リポジトリの作成およびメンテナンスに利用するコマンド
Gitを利用するには、まずリポジトリの作成が必要だ。リポジトリ作成を行うコマンドは「git init」である。リポジトリを作成したいディレクトリでこのコマンドを実行すると.gitディレクトリが作成され、Gitリポジトリの管理ファイル等がここに作成される。
$ cd <リポジトリを作成するディレクトリ> $ git init
Gitの管理ファイルは.gitディレクトリ内に保存される。このディレクトリ内にはさまざまなファイルが格納されるが、通常これらのファイルの存在を意識する必要はない。また、リポジトリの各種設定は.git/configファイル内に記録される。Gitには各種設定を行う「git config」コマンドが用意されているが、このファイルを手動で変更することでも設定変更が可能だ。
リポジトリの複製を行うには「Git clone」コマンドを利用する。このコマンドは既存のリポジトリからローカルにファイルをコピーして作業用のリポジトリを作成する、といった場合などに利用する。
$ cd <リポジトリを作成するディレクトリ> $ git clone <複製したいリポジトリのURL>
リポジトリのURLは表1のような形式で指定する。
| プロトコル | 指定方法 |
|---|---|
| rsync | rsync://<ホスト名>/<Gitリポジトリのパス> |
| HTTP | http://<ホスト名>[:ポート番号]/<Gitリポジトリのパス> |
| HTTPS | https://<ホスト名>[:ポート番号]/<Gitリポジトリのパス> |
| git | git://<ホスト名>[:ポート番号]/<Gitリポジトリのパス> |
| SSH | ssh://[ユーザー名@]<ホスト名>[:ポート番号]/<Gitリポジトリのパス> |
| ローカルファイル | <Gitリポジトリのパス>もしくはfile://<Gitリポジトリのパス> |
また、作成するディレクトリ名を指定することもできる。
$ git clone <複製したいリポジトリのURL> <作成するディレクトリ>
git cloneはリポジトリの履歴情報までも含めてリポジトリを複製するため、大規模なプロジェクトの場合は多くのファイルを取得/コピーしなければならないことがある。もし最新のソースファイルを取得する目的のみで使用し、ソースファイルの修正を行わない場合は、「--depth」オプションで取得するリビジョン数を指定するとよい。
たとえば最新リビジョンだけを取得したい場合、「--depth 1」と指定する。
$ git clone --depth 1 <複製したいリポジトリのURL>
リポジトリがもし破損した可能性がある場合、「git fsck」で破損している個所を検出できる。
$ git fsck
また、完全なチェックを行うには「--full」オプションを付けてgit fsckを実行する。
$ git fsck --full
「git fsck」では、「danglingオブジェクト」と呼ばれるテンポラリオブジェクトも検出される。danglingオブジェクトはリポジトリに変更を加える際に作成される中間ファイルのようなもので、たとえば「git add」で追加したファイルに別の変更を加えてコミットした場合などに残されるものだ。このファイルはストレージ容量を消費するものの、残っていても大きな害はないため、無視して構わない。また、後述の「git gc」コマンドを実行することで、一定期間(デフォルトでは2週間)よりも前に作成されたdanglingオブジェクトを破棄することができる。
「git gc」コマンドは、リポジトリ内のオブジェクトの圧縮(pack)や不要なオブジェクトの破棄などを行うものだ。これによってリポジトリが使用するストレージ容量を減らせるだけでなく、パフォーマンスの向上も期待できる。頻繁に実行する必要はないが、大量のコミットやマージを行った場合などには実行するとよいだろう。
$ git gc
