リモートを使ってみようの巻
基本的なGitコマンドを抑えたので、さっそくGitHubでも使ってみましょう。
その前に、簡単にリモートリポジトリの話でもしましょうか。
今まではローカルリポジトリの話をしていました。
(つまり、自分のPC内だけでGitリポジトリを扱うということです)
個人で開発を進めるならばローカルのみでも問題ないですが、そんなことはありませんね。当然、共同作業が必要になってくると思います。
ということで、リモートリポジトリを作ろうという話になります。
練習用に、新しくディレクトリとファイルを作りましょう。
完成予想図は以下のような感じです。
sample.gitというのはベアリポジトリというもので、ここでいうリモートリポジトリに相当します。sample.cloneがローカルリポジトリです。
ローカルで作業してコミットをし、sample.gitに変更に関しての情報を送信(push)します。また、共同作業者はsample.gitから受信(fetch)することもできます。
(fetchのほかにpullという受信方法がありますが、違いは受信後にmergeするかしないかです。mergeしないほうがfetchになります。詳しいことは調べてみてください。今回はfetchを使います。)
なんだか共同作業ができそうですね。
ちなみにベアリポジトリというのは、中身が.gitの中身のみとなっているリポジトリということです。
どういうこと????
すみません、説明します笑。
仮に、.gitの中身がCONTENTSであるとしましょう。
言いたいことはわかりましたでしょうか?つまり、丸裸にされた.gitってことですね。
さて、まずはベアリポジトリを作るための型作りをしましょう。
ツリー構造は以下のようにします。
sample.shの中身は何でもいいです。今回は例として"sample"という文字列を入力しました。
また、sampleディレクトリ内でgit initコマンドをしてgitリポジトリを作成します。git initした後、コミットするのを忘れないでください。
このsampleディレクトリからベアリポジトリを作ります。簡単です。
まず、trainingディレクトリに戻ります。そこで次のコマンドを入力します。
git clone --bare sample sample.git
すると次のような構造になると思います。
これで複製元のリポジトリ、つまりこれからリモートリポジトリになるものが完成しました。
さて、新しくディレクトリを作ってみましょう。
training内にsample.cloneというディレクトリを作り、そのディレクトリでgit initを実行しましょう。
すると、下のような構造になります。
さて、用意するものはそろいました。では、実際にsample.cloneのリモートをsample.gitに設定してみましょう。
まず、sample.cloneディレクトリ内に入ります。
そして、次のコマンドを入力します
git remote add origin ../sample.git
これは、「sample.gitというリポジトリをoriginという名前でリモートに追加するよ」ということです。
これによって、sample.cloneのリモートリポジトリはsample.gitということになりました。つまり、sample.gitにpushもできるしsample.gitからfetchもできるということです。
これを、共同作業するチーム全員で行うことにより、sample.gitリポジトリを親リポジトリとして、みんなでpushしたりfetchしたりして作業を進めていくことができます。
イメージはこんな感じです。
今回はリモートの簡単な構造と作り方を説明しました。
詳細のコードに関してはQittaなどで掲載しようかと思っています。
(Qittaのアカウントはこの前作ったばかりですが、学校とインターンが忙しくてブログだけで精いっぱいなので、まあいずれ出します笑)