あなたはgit cloneの使い方で悩んでいませんか?
git cloneは基本的なコマンドなのでついなんとなくで使いがちですが、この基本コマンドを理解することでgit自体への理解を深めることができます。
この記事ではgit cloneについて複数の書籍やサイトを参考にどこよりも詳しくまとめました。この記事をきっかけに便利なgitを使いこなせるようになりましょう。
この記事は現役エンジニアによって監修済みです。
この記事の目次

git cloneの基本的な使い方
引用:git-scm.com
git cloneは既存の Gitリポジトリを別のサーバーからクローンするコマンドです。プロジェクトのスタートや途中から開発に加わるときは必ずgit cloneから始めます。
通常のclone
通常のgitプロジェクトでは、githubなどから自分のローカル環境にクローンします。
$ git clone [リポジトリ名]
cloneするとコマンドを実行したときにいるディレクトリに repositoryディレクトリが作られます。もしもディレクトリを変更したい場合は指定の次にパスを指定します。
$ git clone [リポジトリ名] path/to/dir
【人数限定】適職発見×年収アップのキャリアコーチング
プロのコーチがあなたの悩みを引き出し、現状を一緒に整理します。
「現状を変えたい。でもどうしたらいいか分からない…」
キャリアウィズは、そんな悩めるキャリア迷子を徹底サポートします。
☑今の仕事を続けるべきか悩んでいる
☑自分にあった働きかたや環境が見つからない
☑キャリアに漠然とした不安がある
ひとつでもあてはまる方は、まずは【無料】の個別相談へ!

git cloneで利用できるプロトコル
git cloneにはいくつかのプロトコル(通信方式)のパターンがあります。使用するプロトコルによって出来ること、出来ないことがありますので注意が必要です。
git
■特徴
・高速に通信できる
・認証機能がない(セキュリティは担保されない)
・git cloneした場合はread-only(読むことしかできない状態)になる
■使い方
git clone git://example.com/var/www/hoge.git
SSH
■特徴
・認証が必要で暗号化されるため安全
・匿名でアクセスできない
■使い方
$ git clone ssh://user@server/project.git
省略形で記述も可能です。
$ git clone user@server:project.git
HTTP/S
■特徴
・GitHubの推奨
・GitHubではユーザー名、パスワードを使って認証を行う
・基本はhttpsを利用しhttpを使うメリットはない
・SSHより高速
■使い方
$ git clone http://example.com/hoge/.git
どう使い分けるのか
プロトコルは、基本的にHTTP/S を使うとよいです。GitHub でも推奨されています。
SSHは、ファイヤーフォールやプロキシの下では動作しないことがあります。
HTTP/Sは、クローンするとpushするたびにユーザー名とパスワードを要求されて面倒だという難点がありますが、Keychain などを使えば一度入力したユーザ名やパスワードを保存してくれるので、それほど手間はかかりません。

ブランチを指定する
リモートから特定のブランチを指定してcloneする方法を紹介します。通常のgit cloneだとmasterブランチをcloneしますが他のブランチを取得したい際にブランチ指定を行うことができます。
$ git clone -b [ブランチ名] --single-branch [リモートリポジトリ名]
この記事のハッシュタグ
git clone のオプション一覧
git cloneには複数のオプションを指定することができます。通常のgit clone以外も使いこなすことができるように見ていきましょう。
oオプション
リモートリポジトリでデフォルトのリポジトリ名であるorigin以外をcloneできます。何も指定していない場合はoriginというリポジトリをcloneします。
git clone -o [origin以外のリポジトリの名前] [リポジトリ]
bareオプション
ベアリポジトリとしてリポジトリを複製します。ベアリポジトリとはワーキングディレクトリを持たないリポジトリです。ベアリポジトリは主にリモートリポジトリで更新管理用に利用されます。ローカルにcloneして開発するときにはワーキングディレクトリのあるノンベアディレクトリを利用します。
git clone --bare [リポジトリ]
mirrorオプション
リポジトリのミラーを作ります。リモートリポジトリの設定変更はできないが、ローカルで同期しないといけないときに便利な方法です。
git clone --mirror [リポジトリ]
depthオプション
depthオプションをつけることで最新の履歴だけ取得可能です。例えば、ファイルを取得するケースなどで利用します。このコピーから clone、fetch、 push することもできません。
git clone --depth 1 [リポジトリ]
–recursiveオプション
リポジトリを複製するときにサブモジュールを取得することができます。サブモジュールについてはここでは割愛します。
git clone --recursive [リポジトリ]
–bオプション
リポジトリを複製して特定のブランチをワークツリーに展開します。
git clone -b BRANCH https://example.com/repo.git
まとめ
git cloneの使い方やオプションについて解説してきましたが、いかがでしたでしょうか。
本記事を理解することでgit自体への理解を深められるはずです。
gitはとても多機能で学ぶほど生産性があがっていくので、ぜひgitを使いこなせるようになってください。
この記事もオススメ



未経験からの転職の悩みを解決!無料カウンセリング開催中【転職成功人数4400名以上!※1】

こんな不安や疑問はありませんか?
・未経験から転職して、本当に年収が上がるのか
・ITエンジニア転職後の働き方や稼ぎ方が想像できない
・スキルゼロからITエンジニアとしてフリーランスになれるのか
カウンセリングでは、ITエンジニア転職やプログラミング学習を知り尽くしたプロのカウンセラーが、あなたの悩み解決をサポートします。満足度93%※1、累計利用者数は42,000人以上!※2
無料で相談できますので、気軽にご参加ください。【テックキャンプは給付金活用で受講料最大70%オフ※4】
※1.2018年10月24日〜11月16日(N=106) 2.2020年12月時点 3.テックキャンプ エンジニア転職は経済産業省の第四次産業革命スキル習得講座の認定も受けており、条件を満たすことで支払った受講料の最大70%(最大56万円)が給付金として支給されます