Gitを使いこなすための20のコマンド 2ページ

リポジトリの作成およびメンテナンスに利用するコマンド

コマンド1:「git init」-リポジトリを作成する

 Gitを利用するには、まずリポジトリの作成が必要だ。リポジトリ作成を行うコマンドは「git init」である。リポジトリを作成したいディレクトリでこのコマンドを実行すると.gitディレクトリが作成され、Gitリポジトリの管理ファイル等がここに作成される。

$ cd <リポジトリを作成するディレクトリ>
$ git init

コラム:Gitが利用する管理ファイル

 Gitの管理ファイルは.gitディレクトリ内に保存される。このディレクトリ内にはさまざまなファイルが格納されるが、通常これらのファイルの存在を意識する必要はない。また、リポジトリの各種設定は.git/configファイル内に記録される。Gitには各種設定を行う「git config」コマンドが用意されているが、このファイルを手動で変更することでも設定変更が可能だ。

コマンド2:「git clone」-既存のリポジトリの複製を作る

 リポジトリの複製を行うには「Git clone」コマンドを利用する。このコマンドは既存のリポジトリからローカルにファイルをコピーして作業用のリポジトリを作成する、といった場合などに利用する。

$ cd <リポジトリを作成するディレクトリ>
$ git clone <複製したいリポジトリのURL>

 リポジトリのURLは表1のような形式で指定する。

表1 Gitで利用できるリポジトリURL
プロトコル 指定方法
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>
コマンド3:「git fsck」-リポジトリの正当性チェックを行う

 リポジトリがもし破損した可能性がある場合、「git fsck」で破損している個所を検出できる。

$ git fsck

 また、完全なチェックを行うには「–full」オプションを付けてgit fsckを実行する。

$ git fsck --full

コラム:Gitの「danglingオブジェクト」

 「git fsck」では、「danglingオブジェクト」と呼ばれるテンポラリオブジェクトも検出される。danglingオブジェクトはリポジトリに変更を加える際に作成される中間ファイルのようなもので、たとえば「git add」で追加したファイルに別の変更を加えてコミットした場合などに残されるものだ。このファイルはストレージ容量を消費するものの、残っていても大きな害はないため、無視して構わない。また、後述の「git gc」コマンドを実行することで、一定期間(デフォルトでは2週間)よりも前に作成されたdanglingオブジェクトを破棄することができる。

コマンド4:「git gc」-リポジトリ内の不要なオブジェクトを削除し、最適化を行う

 「git gc」コマンドは、リポジトリ内のオブジェクトの圧縮(pack)や不要なオブジェクトの破棄などを行うものだ。これによってリポジトリが使用するストレージ容量を減らせるだけでなく、パフォーマンスの向上も期待できる。頻繁に実行する必要はないが、大量のコミットやマージを行った場合などには実行するとよいだろう。

$ git gc