Git の基本 | git init
git init コマンド
git init は、新しい Git リポジトリを作成するコマンドである。このコマンドは、まだバージョン管理されていない既存プロジェクトを Git リポジトリへ変換する場合や、新しい空のリポジトリを作成して初期化する場合に使用する。このコマンド以外のほとんどの Git コマンドは、初期化済みリポジトリ以外では使用できないため、新しいプロジェクトを始めるときに通常最初に実行するコマンドである。
git init コマンドを実行すると、リポジトリに関するすべてのメタデータを持つ .git サブディレクトリがプロジェクトのルートに作成される。この .git ディレクトリの作成を除けば、既存プロジェクトには何も変更を加えない。SVN とは異なり、Git は各サブディレクトリに .git フォルダを作成しない。
使い方
git init
現在のディレクトリを Git リポジトリへ変換する。このコマンドを実行すると、現在のディレクトリに .git フォルダが作成され、プロジェクトのバージョン管理を開始できる。
git init <directory>
指定したディレクトリに空の Git リポジトリを作成する。このコマンドを実行すると、.git サブディレクトリを含む <directory> という名前の新しいフォルダが作成される。
git init --bare <directory>
作業ディレクトリを持たない Git リポジトリを作成して初期化する。共有リポジトリは必ず --bare フラグを指定して作成する必要がある。以下の補足説明を参照。--bare フラグを指定して作成したリポジトリディレクトリ名には、自動的に .git が追加される。たとえば、my-project という名前のリポジトリのベア版は my-project.git という名前のフォルダに保存される。
補足説明
SVN と比較すると、git init は新しいバージョン管理プロジェクトを作成するための非常に簡単な方法を提供するコマンドである。Git では、手動でリポジトリフォルダを作成したり、ファイルをインポートしたり、作業コピーをチェックアウトしたりする必要はない。プロジェクトフォルダで git init を実行するだけで、完全な機能を持つ Git リポジトリを作成できる。
ただし、ほとんどのプロジェクトでは、git init コマンドは中央リポジトリを作成するときに一度だけ使用される。それぞれの開発者がローカルリポジトリ、つまり中央リポジトリの作業コピーを作成するときには、通常 git init は使用しない。開発者は一般的に git clone コマンドを使って、既存リポジトリのコピーをローカルマシンに作成する。
ベアリポジトリ
--bare フラグを指定すると、作業ディレクトリを持たないリポジトリが作成され、そのリポジトリ内でファイルを編集したり変更を適用したりできない。ベアリポジトリではないリポジトリへブランチをプッシュすると、変更内容が誤って記録される可能性があるため、中央リポジトリは必ずベアリポジトリとして作成する必要がある。--bare の指定は、そのリポジトリを開発環境ではなく保存用領域として認識させる方法だと考えればよい。つまり、実質的にすべての Git ワークフローで中央リポジトリはベアリポジトリであり、開発者のローカルリポジトリはベアリポジトリではない。
Git チュートリアル: ベアリポジトリ
使用例
中央リポジトリの作業コピーを作成するには git clone コマンドの方が便利であるため、git init コマンドの一般的な使用例は、主に最初の中央リポジトリを作成するときである:
ssh @
cd path / above / repo
git init --bare my-project.git
まず SSH 通信で中央リポジトリを作成するサーバーへログインする。
次に、プロジェクトを保存するディレクトリへ移動する。
最後に、--bare フラグを指定して中央リポジトリを作成する。
その後、開発者は clone my-project.git コマンドを使って、自分の開発環境に作業コピーを作成する。