これでもう怖くない、Git/GitHubにおけるリモートリポジトリの作成、確認、変更、更新時の基本5コマンドこっそり始めるGit/GitHub超入門(9)(3/3 ページ)

» 2017年01月26日 05時00分 公開
[平屋真吾クラスメソッド]
前のページへ 1|2|3       

既存のリモートリポジトリを取得する

 ここまでの作業の中で、ローカルリポジトリを元にリモートリポジトリを新規作成しました。次は、既存のリモートリポジトリをローカルに取り込む手順を解説します。

 「リモートリポジトリ上の既存プロジェクトのソースコードを取得する」「別のPCで行う作業のためにリモートリポジトリからソースコードを取得する」などのケースをイメージしてみてください。

 今回は、「リモートリポジトリを作成する」で作成したリモートリポジトリを「ローカルリポジトリを作成する」で扱ったディレクトリとは別のディレクトリに取り込みます。

図8 既存のリモートリポジトリを取得

リモートリポジトリのURLを確認する

 リモートリポジトリのURLはGitHubのリポジトリページ上の「Clone or Download」をクリックすると表示できます。

図9 リポジトリページでリポジトリURLを表示

リモートリポジトリを複製してローカルに取り込む――git cloneコマンド

 1つ上の階層に移動します。「hello-git-9」には「local」ディレクトリだけが存在する状態になっています。

$ pwd
/Users/hirayashingo/Documents/hello-git-9/local
$ cd ..
$ pwd
/Users/hirayashingo/Documents/hello-git-9
$ ls
local

 「git clone <リポジトリURL>」コマンドを使用してリモートリポジトリを複製してローカルに取り込みます。

$ git clone git@github.com:username/hello-github.git
Cloning into 'hello-github'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

 「hello-git-9」の中に「hello-github」ディレクトリが作成されました。

$ ls
hello-github    local

 「hello-github」ディレクトリの中はGit管理下になっていて、「ローカルリポジトリを作成する」で作成したファイルがあります。

$ cd hello-github/
$ pwd
/Users/hirayashingo/Documents/hello-git-9/hello-github
$ ls -a
.       ..      .git        README.md
$ cat README.md
# hello-github

 既存のリモートリポジトリを複製してローカルに取り込む操作は、これで完了です。次の「リモートリポジトリを更新する」では、リモートリポジトリを更新していく中で行う操作を解説します。

リモートリポジトリを変更・更新する

 最後に、リモートリポジトリを使用して共同作業を進めていく上で基本となる操作を解説します。

 ローカルで行った変更をリモートリポジトリに反映すれば、共同作業者が変更を確認できるようになります。リモートリポジトリの変更をローカルに取り込めば、共同作業者が行った変更をローカルで確認できるようになります。

図10 リモートリポジトリを更新

ファイルを変更・コミットし、リモートリポジトリに反映する

 「hello-github」ディレクトリ内の「README.md」ファイルを変更し、git addコマンドでステージ、git commit -mコマンドでコミットします。

$ pwd
/Users/hirayashingo/Documents/hello-git-9/hello-github
$ echo "GitHubの機能を試すためのリポジトリです。" >> README.md
$ cat README.md
# hello-github
GitHubの機能を試すためのリポジトリです。
$ git add README.md
$ git commit -m "リポジトリの説明を追加"
[master 8671af2] リポジトリの説明を追加
 1 file changed, 1 insertion(+)

 先ほど紹介したgit pushコマンドでリモートリポジトリへ反映します。

$ git push origin master
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 355 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:username/hello-github.git
   5fd9303..8671af2  master -> master

 リポジトリのページへ戻り更新してみましょう。「README.md」ファイルに対する変更が反映されているはずです。

図11 リポジトリページ

リモートリポジトリの更新をローカルに取り込む――git pullコマンド

 「local」ディレクトリに移動します。

$ pwd
/Users/hirayashingo/Documents/hello-git-9/hello-github
$ cd ..
$ cd local/
$ pwd
/Users/hirayashingo/Documents/hello-git-9/local

 「README.md」ファイルの内容は古いままです。

$ cat README.md
# hello-github

 「git pull <リモート名> <ブランチ名>」コマンドを使用して

リモートリポジトリの最新データを取り込みます。

$ git pull origin master
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From github.com:username/hello-github
 * branch            master     -> FETCH_HEAD
   5fd9303..8671af2  master     -> origin/master
Updating 5fd9303..8671af2
Fast-forward
 README.md | 1 +
 1 file changed, 1 insertion(+)

 「README.md」ファイルの内容が更新されました。

$ cat README.md
# hello-github
GitHubの機能を試すためのリポジトリです。

本稿で紹介したGitのコマンド一覧

 本稿ではGitHub上に「リモートリポジトリ」を作成し、「リモートリポジトリ」に対する基本操作を試していきました。

 本記事で初めて登場したGitのコマンドは以下の通りです。

  • git remote -v:登録済みのリモートリポジトリの「リモート名」「リポジトリURL」を表示する
  • git remote add <リモート名> <リポジトリURL>:リモートリポジトリを登録する
  • git push <リモート名> <ブランチ名>:ローカルリポジトリの内容をリモートリポジトリに反映する
  • git clone <リポジトリURL>:<リポジトリURL>に存在するリモートリポジトリをローカルに複製する
  • git pull <リモート名> <ブランチ名>:リモートリポジトリの内容をローカルリポジトリに反映する

 次回の記事では「プルリクエスト」について解説する予定です。お楽しみに!

参考

  • Pro Git』(written by Scott Chacon and Ben Straub and published by Apress)
  • GitHub Help

著者紹介

平屋真吾

クラスメソッド株式会社 iPhoneアプリサービス事業部所属のプログラマーです。iOSアプリの開発がメインですが、デザインやAWSなども勉強中です。

ブログ:http://dev.classmethod.jp/author/hiraya-shingo/


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。