リモートリポジトリーをクローンするコマンドの説明
「git clone」コマンドは、「リモートリポジトリー」をクローンするコマンドです。このコマンドは、「リモートリポジトリー」を自分の環境にコピーして、「ローカルリポジトリー」を構築します。
通常、「ノンベアリポジトリー」としてクローンすることがほとんどだと思いますが、「ベアリポジトリー」として、クローンすることも可能です。
リモートトラッキングブランチの作成
必要に応じて「リモートリポジトリー」にあるそれぞれのブランチに対応した、「リモートトラッキングブランチ」を作成します。ローカルブランチの作成とチェックアウト
「リモートリポジトリー」の「HEAD」が指すブランチを、「ローカルリポジトリー」に作成します。また、作成した「ローカルリポジトリー」からチェックアウトを行い、「ワーキングディレクトリー」にプロジェクトのファイル群を展開します。
コマンドのフォーマット
コマンドのフォーマットは以下のようになります。
git clone <オプション> <クローンするリポジトリー> <リポジトリーを保存するパス>
ローカルプロトコルに関するオプション
「ローカルプロトコル」に関するオプションです。いずれのオプションも省略可能です。
ハードリンクを作成しない(--no-hardlinks)
このオプションを指定すると、ハードリンクによる「Gitオブジェクト」のコピーを禁止し、常に通常のファイルのコピー方法で「リモートリポジトリー」から「ローカルリポジトリー」へ「Gitオブジェクト」のコピーを行います。「ハードリンクによるGitオブジェクトのコピーを禁止し、リモートリポジトリーをクローンする」を参考にしてください。
Gitオブジェクトを共有する(--shared, -s)
このオプションを指定すると、「リモートリポジトリー」クローン時、「リモートリポジトリー」の「Gitオブジェクト」を「ローカルリポジトリー」にコピーしません。「ローカルリポジトリー」が必要とする「Gitオブジェクト」は、「リモートリポジトリー」の「Gitオブジェクト」を参照するようになります。
「Gitオブジェクトを共有して、リモートリポジトリーをクローンする」を参考にしてください。
リポジトリーに関するオプション
リポジトリーに関するオプションです。いずれのオプションも省略可能です。
Gitオブジェクトを参照するリモートリポジトリーを指定する(--reference)
「Gitオブジェクト」を参照する「リモートリポジトリー」を指定します。このオプションを利用すると、「Gitオブジェクト」の参照先「リモートリポジトリー」を指定することが出きます。
「Gitオブジェクトを共有する(--shared, -s)」オプションとも相性が良いです。
「Gitオブジェクトを参照するリポジトリーを指定して、リモートリポジトリーをクローンする」を参考にしてください。
ベアリポジトリーを作成する(--bare)
このオプションを指定すると、「ベアリポジトリー」を作成します。このオプションを指定しないと、「ノンベアリポジトリー」を作成します。
「ベアリポジトリー」には、「ワーキングディレクトリー」がないため、暗黙のうちに「チェックアウトを行わない(--no-checkout, -n)」オプションも指定されます。
「リモートリポジトリーをベアリポジトリーとしてクローンする」を参考にしてください。
リポジトリーのミラーを作成する(--mirror)
このオプションを指定すると、「ミラーリポジトリー」(ベアリポジトリー)を作成します。このオプションを指定しないと、「ノンベアリポジトリー」を作成します。
「ベアリポジトリーを作成する(--bare)」オプションも、暗黙のうちに指定されます。
「リモートリポジトリーをミラーリポジトリーとしてクローンする」を参考にしてください。
クローンに関するオプション
クローンに関するオプションです。いずれのオプションも省略可能です。
リモートリポジトリー名を変更する(--origin, -o)
リモートリポジトリー名を変更します。デフォルトのリモートリポジトリー名は「origin」ですが、このオプションで名称を変更することができます。
「リモートリポジトリー名を変更して、リモートリポジトリーをクローンする」を参考にしてください。
テンプレートディレクトリーの指定(--template=)
「テンプレートディレクトリー」のパスを指定します。パスの指定は、相対パスでも絶対パスでも良いです。
「テンプレートディレクトリーを指定して、リモートリポジトリーをクローンする」を参考にしてください。
gitディレクトリーの指定(--separate-git-dir=)
「Gitディレクトリー」のパスを指定します。このオプションを省略すると、デフォルトのパスが使用されます。
「Gitディレクトリー」と「ワーキングディレクトリー」を別々のフォルダーに分けたい時に指定します。
「Gitディレクトリーを指定して、リモートリポジトリーをクローンする」を参考にしてください。
リポジトリー固有の設定を指定(--config, -c)
リポジトリー固有の設定を指定します。クローン時に適用したい設定を、このオプションで指定します。
「リポジトリー固有の設定を指定して、リモートリポジトリーをクローンする」を参考にしてください。
サブモジュールをすべて初期化する(--recursive, --recurse-submodules)
「リモートリポジトリー」内のすべてのサブモジュールを初期化します。クローン後、「git submodule update --init --recursive」を実行するのと同じです。
「リモートリポジトリーをクローン後、すべてのサブモジュールを初期化する」を参考にしてください。
シャロークローンに関するオプション
「シャロークローン」に関するオプションです。いずれのオプションも省略可能です。
シャロークローンの指定(--depth)
このオプションを指定すると、「シャロークローン」を行います。また、取得するブランチの「スナップショット」の世代を、数値で指定します。
デフォルトで「--single-branch」オプションも指定されます。
「シャロークローンを指定して、リモートリポジトリーをクローンする」を参考にしてください。
スナップショットを取得するブランチの制御(--single-branch/--no-single-branch)
「--single-branch」オプションを指定すると、現在のブランチもしくは、指定されたブランチの「スナップショット」のみを取得します。「--no-single-branch」オプションを指定すると、すべてのブランチの「スナップショット」を取得します。
取得する「スナップショット」の数は、「シャロークローンの指定(--depth)」で指定します。
「すべてのブランチを対象にシャロークローンを行い、リモートリポジトリーをクローンする」を参考にしてください。
チェックアウトに関するオプション
チェックアウトに関するオプションです。いずれのオプションも省略可能です。
チェックアウトを行わない(--no-checkout, -n)
クローン完了後、チェックアウトを行いません。「リモートリポジトリーのクローン後、チェックアウトを行わない」を参考にしてください。
チェックアウトするブランチやタグを指定する(--branch, -b)
クローン完了後、チェックアウトするブランチやタグを指定します。「チェックアウトするブランチやタグを指定して、リモートリポジトリーをクローンする」を参考にしてください。
その他のオプション
その他のオプションです。いずれのオプションも省略可能です。
git-upload-packコマンドのパスを指定(--upload-pack, -u)
「git-upload-pack」コマンドの場所を指定します。リポジトリーをクローンする際、「git-upload-pack」コマンドが見つからないエラーが出た時は、このオプションで「git-upload-pack」コマンドの場所を指定します。
「git-upload-packコマンドの場所を指定して、リモートリポジトリーをクローンする」を参考にしてください。
情報の出力に関するオプション
コマンド実行時、クローンの進捗情報など情報の出力に関するオプションです。いずれのオプションも省略可能です。
出力する情報の抑制(-q, --quiet)
コマンド実行時、警告とエラー以外のメッセージを出力しません。詳細情報の出力(--verbose, -v)
コマンド実行時、詳細情報を出力します。進捗の表示(--progress)
標準エラー(stderr)がターミナルに関連付けられていない時は、クローンの進捗情報を出力しません。このオプションを指定すると、標準エラー(stderr)がターミナルに関連付けられていない時でも、標準エラー(stderr)にクローンの進捗情報を出力します。
「端末」からコマンドを実行するときは、このオプションを指定しなくても、クローンの進捗情報が出力されます。
クローンするリモートリポジトリー
クローンする「リモートリポジトリー」を指定します。このオプションは省略できません。
「リモートリポジトリー」の指定方法は、以下を参考にしてください。
- ローカルプロトコル(ファイルパス)を使用して、リモートリポジトリーをクローンする
- ローカルプロトコル(URI)を使用して、リモートリポジトリーをクローンする
- HTTPプロトコルを使用して、リモートリポジトリーをクローンする
- SSHプロトコルを使用して、リモートリポジトリーをクローンする
- Gitプロトコルを使用して、リモートリポジトリーをクローンする
リポジトリーを保存するパス
クローンした「リモートリポジトリー」を保存(配置)するフォルダーを指定します。相対パスでも絶対パスでも良いです。
すでに存在しているフォルダーは指定できない
すでに存在しているフォルダーを指定することはできません。すでに存在しているフォルダーを指定した場合、クローンに失敗します。
リポジトリーを保存するパスの省略
リポジトリーを保存するパスを省略した時は、コマンド実行時のカレントディレクトリー内に、「リモートリポジトリー」と同じ名称のフォルダーを作成します。また、そのフォルダー内にリポジトリーをクローンします。
リポジトリーを保存するパスの省略例
リポジトリーを保存するパスの省略例です。例えば以下のコマンドで、「リモートリポジトリー」をクローンしたとします。
git clone git://192.168.56.1/app/new/mySharedProject
この場合、カレントディレクトリー内に「mySharedProject」フォルダーが作成されます。
また、「mySharedProject」フォルダー内にリポジトリーがクローンされます。
「.git」フォルダーが、「Gitディレクトリー」です。
「mySharedProject」フォルダーが、「ワーキングディレクトリー」です。