みなさんこんにちは!フリーランスプログラマーのsatoです!
新しいプロジェクトを「開始する時」や「関わり始める時」はワクワクするものです。心機一転頑張っていきたいものですね!そんな時、開発者が最初に手がけることになるのが、開発環境の構築でしょう。
その際使用するgitコマンドの一つがcloneだと思います。今回はcloneについて深く見ていきましょう。
- [基本]cloneとは
- [基本]リポジトリとは
- [基本]cloneを実際に使ってみよう!
- [応用]cloneの応用的な使い方
まずはcloneとはなんなのか、その再出現するリポジトリなど、概念的なものについて学びましょう。そのあとは、具体的な使い方を見ていきましょうか。それではよろしくお願いいたします。
cloneとは
cloneコマンドは一言で言えばリポジトリ(ファイルやディレクトリの状態)をコピーするためのコマンドと言えるでしょう。クローンという、その名の通りですね。主にみんなで活用しているリモートリポジトリをクローンして、自分の開発用にローカルリポジトリを作るために使います。
まずは、初心者の方のためにリポジトリについて見ていきましょう。
リポジトリとは
※リポジトリがわかる人は、この項目は飛ばしてもらってかまいません。
リポジトリとは、先ほどの説明にもあった通りファイルやディレクトリの状態のことを言います。そしてみんなのファイルやディレクトリの状態が保存されている場所のことをリモートリポジトリ。
自分のファイルやディレクトリの状態保存されている場所のことをローカルリポジトリと呼びます。
基本的にローカルリポジトリは、リモートリポジトリをコピーして作られています。この際、コピーするために使用するのが、今回学ぶcloneコマンドというわけですね!
[補足]リモートリポジトリが必要ない時!
先ほどリモートリポジトリとローカルリポジトリについて説明しました。
しかし状況によっては、リモートリポジトリがまだ存在しないケースや、そもそも作る必要がないケースもあると思います。その場合は、gitを使い始めるために、cloneではなくinitを使用することになります。その状況の方は、まずinitコマンドを学んでみてください。
cloneを実際に使ってみよう!
では早速cloneコマンドを使用してみましょう。
コマンドの基本型
git clone [クローンしたいリポジトリ] [クローン先のディレクトリ(省略可)]
第一引数へクローンしたいリポジトリを指定します。第二引数へ、クローンの配置先のディレクトリを指定します。
※また第二引数は省略可能です。省略した場合、クローンしたいリポジトリと同一の名称のディレクトリが生成されます。
通信方式と実例
cloneの基本的な使い方は理解できたかと思いますが…「クローンしたいリポジトリの書き方」に、いろいろな種類があり、混乱することが多いためその点を見てきましょう。
種類が多い理由は、「クローンしたいリポジトリ」は、だいたいサーバー上に存在するため、環境によって通信方式が関わってくるからです。それぞれ特徴とともに実例ベースで見ていきましょう。
http方式
通信速度が早い。githubなどで、よく使われる形式。
書き方:
git clone http://リポジトリのurl/プロジェクト名.git
実例:
git clone http://xxxxxx.com/xxxxxx.git
git方式
比較的高速で通信が可能な形式です。ただしこの方式を使用する場合、2つ注意点があります。
- ①認証構造を持たない
- ②クローンしてきたものがread-onlyになる(更新が行えない)
取得したいだけの場合には有用でしょう。
書き方:
git clone git://リポジトリのurl/プロジェクト名.git
実例:
git clone git://xxxxxx.com/xxxxxx.git
ssh方式
個人や社内のプロジェクトでよく使われるのがこの形式だと思います。秘密鍵の設定などもできますし、比較的安全な形式です。
書き方:
git clone ssh://ユーザー名@リポジトリのurl/プロジェクト名.git
実例:
git clone ssh://admin@xxxxxx.com/xxxxxx.git
使い分け方
クローンしたいリモートリポジトリの環境によって使い分けましょう。またリポートリポジトリを作成する人は、この辺りをよく考えながら、環境を構築しましょう!
cloneの応用的な使い方
ここまでで基本的な使い方は先ほど学びました。では引き続き、応用的な使い方も見ていきましょう。
タグやブランチを指定してcloneする!
cloneはブランチやタグを指定して行うことも可能です。その場合は「-b」オプションをつけましょう。
git clone -b [クローンしたいブランチ名] [クローンしたいリポジトリ] [クローン先のディレクトリ(省略可)]
リモートリポジトリの確認
リモートリポジトリがどこにあるのか知りたくなることもあると思います。その際、便利なのが以下のコマンドです。
コマンド:
git remote -v
結果:
git remote -v origin https://xxxxx.com/xxxxxxx (fetch) origin https://xxxxx.com/xxxxxxx ((push)
リモートリポジトリの場所が確認することができます!
まとめ
いかがでしたでしょうか。cloneコマンドは、開発環境構築の初期に使うコマンドです。上手に使って、サッと開発に入っていきましょう!
また通信方式はセキュリティにも関わってくる部分です。リモートリポジトリを作る側の人は、この辺りもしっかり学んでおきましょう!