クロの制作日記

0から始めるGitHub入門 第五回 (リモートリポジトリでの操作)

前回はブランチの概要と基本的な操作を学びました。
kurora-shumpei.hatenablog.com

今回はついにリモートリポジトリ上での操作を説明していきます。


今回の記事作成する際に参考にした本です。


GitHub実践入門──Pull Requestによる開発の変革 WEB+DB PRESS plus

では早速は始めていきましょう。

リモートリポジトリとは

これは第二回のときに説明しました。
kurora-shumpei.hatenablog.com

もう一度軽く説明しておくと、以下の図のようにGItには

  • リモートリポジトリ:サーバー上に存在(複数人で共有用)

が存在します。

f:id:kurora-shumpei:20190202174510p:plain
ローカルリポジトリとリモートリポジトリ

一人で作業を進める分にはローカルリポジトリだけで事足りますが、複数人で作業をしたり、コードを公開したりしたい時にはリモートリポジトリを作成する必要性があります。

今まではローカルリポジトリ上での操作を学んできましたが、GitHubを使いこなせるようになるためにはリモートリポジトリでの操作を理解することが重要なので、きっちり学んでいきましょう。




リモートリポジトリの作成

これも第二回のときに作成の手順を説明しました。
名前はローカルリポジトリと同じ名前にしておきましょう。
kurora-shumpei.hatenablog.com
基本的にはこの通り作成してくれたらよいのですが、一つ気を付けてほしいのが「READMEを作成する」というチェックをしないようにしてください。

なぜかというと、第三・四回作成したローカルリポジトリの内容をリモートリポジトリへ送信するのですが、そのローカルリポジトリのREADMEファイルとリモートリポジトリのREADMEファイルとの整合性が取れなくなって、強制上書きをされてしまうためです。

まあ、そこまでの内容を書いてないので上書きされても良いのですが、今後のためにも今回から気を付けていきましょう。

ローカルリポジトリからリモートリポジトリへ

git remote add : リモートリポジトリを登録

先ほど作成したリモートリポジトリのパスを「Clone or download」ボタンからコピーしましょう。恐らくは,、「https://github.com/ユーザー名/"リポジトリの名前".git」とかになると思います

このパスを元に、ローカルリポジトリとリモートリポジトリを対応付けます。

では以下のコマンドを入力してください。

git remote add origin https://github.com/ユーザー名/"リポジトリの名前".git

この「git remote add」コマンドは「https://github.com/ユーザー名/"リポジトリの名前".git」をoriginという名前で扱うことができます。プログラムで言う変数を定義するみたいなものですね。

ちなみに、今回は、というか大体の場合で「origin」というのを使用しますが、別にこれは適当な名前でも構いません。まあ、「origin」で統一しておいた方がわかりやすいですから「origin」にしときましょう。

git push : リモートリポジトリへ送信

ではついにローカルリポジトリからリモートリポジトリに送信してみましょう。

以下のコマンドを入力してください。

git push -u origin master

この「git push」がローカルリポジトリの内容をリモートリポジトリに送信するコマンドです。さらに末尾にブランチ名を記入することでどのブランチに送信するかを指定できます。この場合だと当然ですが、他のブランチ(alpha、beta)はリモートリポジトリに登録できないので別途pushする必要があります。

また、「-u」オプションをつけることで、ローカルリポジトリの現在のブランチをoriginリポジトリのmasterブランチであることを設定できます。これは後で説明する「pull」コマンドを使うときに効いてきます。

実際にpushできたかを確認するためにはGitHub上でリモートリポジトリのmasterブランチを確認してみてください。

リモートリポジトリから取得

これで終わりにしてもよかったのですが、せっかくなので別の人が作ったリモートリポジトリを取得する作業をやってみましょう。これをできるようになれば、他の人のコードを使ったり、オーブンソースのソフトの開発に関わったりすることができるようになります。

リモートリポジトリを取得 : git clone

取り敢えずリモートリポジトリを取得してみましょう。好きなリポジトリを取得しても良いのですが、特にこだわりがない人は私のリポジトリを取得しましょう。

以下のコマンドをリポジトリを置きたいディレクトリに移動してから入力してください。

git clone https://github.com/kuroshum/HelloGitHub.git

「git clone」はリモートリポジトリをローカル上に取得するためのコマンドです。

リモートリポジトリからブランチを取得

次に以下のコマンドで現在のブランチの情報を取得しましょう

git branch -a

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/ganma
  remotes/origin/master

「-a」をつけることでローカルリポジトリだけでなく、リモートリポジトリのブランチも表示してくれます。恐らく見覚えのない「ganma」というブランチがあると思います。これはリモートリポジトリ上で登録されているブランチです。

以下のようにコマンドを入力すればローカルリポジトリに「ganma」ブランチをチェックアウトできます。

git checkout -b ganma origin/ganma

このように入力すれば、リモートリポジトリ上の「ganma」ブランチをローカルリポジトリの「ganma」ブランチとして作成することができます。

変更してコミットしてみる

せっかくリモートリポジトリを取得してきたので、何かしら変更を加えてコミットしてみましょう。取り敢えずREADMEファイルに「ganma」という単語を追加して保存してください。そしていつも通りにコミットしましょう。

git add README.md
git commit -m "Add ganma"

そして最後にpushします。

git push

このようにすることでganmaブランチに色々と機能を追加することができます。

リポジトリの最新バージョンを取得 : git pull

今までは一方的にコミットしたりプッシュしたりとリポジトリのバージョンを更新する作業ばかりをしてきましたが、複数人で作業するときには他人が更新したリポジトリのバージョンを取得するという作業も必要になってきます。それが「git pull」コマンドです。

では実際に使ってみましょう。

git pull origin ganma

このコマンドもpushと同じで、リポジトリとブランチを指定してあげます。そうすることで指定したリポジトリの指定したブランチの最新バージョンを取得することができます。

同じブランチで他人と一緒に作業するときは、コンフリクトが起きにくくするためにもpushとpullをこまめにするのが良いと思います。




最後に

今回はリモートリポジトリでの操作を一通り説明しました。

これで取り敢えずはGitの基本的な操作を習得することができましたので、次回からはGitHubの機能を解説していくと思います。

今回の記事作成する際に参考にした本です。


GitHub実践入門──Pull Requestによる開発の変革 WEB+DB PRESS plus