これでもう怖くない、Git/GitHubにおけるリモートリポジトリの作成、確認、変更、更新時の基本5コマンド:こっそり始めるGit/GitHub超入門(9)(3/3 ページ)
本連載では、バージョン管理システム「Git」とGitのホスティングサービスの1つ「GitHub」を使うために必要な知識を基礎から解説しています。今回は、リモートリポジトリに関する基本コマンドとして、git remote -v、git remote add、git pus、git clone、git pullの使い方を紹介。
既存のリモートリポジトリを取得する
ここまでの作業の中で、ローカルリポジトリを元にリモートリポジトリを新規作成しました。次は、既存のリモートリポジトリをローカルに取り込む手順を解説します。
「リモートリポジトリ上の既存プロジェクトのソースコードを取得する」「別のPCで行う作業のためにリモートリポジトリからソースコードを取得する」などのケースをイメージしてみてください。
今回は、「リモートリポジトリを作成する」で作成したリモートリポジトリを「ローカルリポジトリを作成する」で扱ったディレクトリとは別のディレクトリに取り込みます。
リモートリポジトリのURLを確認する
リモートリポジトリのURLはGitHubのリポジトリページ上の「Clone or Download」をクリックすると表示できます。
リモートリポジトリを複製してローカルに取り込む――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
既存のリモートリポジトリを複製してローカルに取り込む操作は、これで完了です。次の「リモートリポジトリを更新する」では、リモートリポジトリを更新していく中で行う操作を解説します。
リモートリポジトリを変更・更新する
最後に、リモートリポジトリを使用して共同作業を進めていく上で基本となる操作を解説します。
ローカルで行った変更をリモートリポジトリに反映すれば、共同作業者が変更を確認できるようになります。リモートリポジトリの変更をローカルに取り込めば、共同作業者が行った変更をローカルで確認できるようになります。
ファイルを変更・コミットし、リモートリポジトリに反映する
「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」ファイルに対する変更が反映されているはずです。
リモートリポジトリの更新をローカルに取り込む――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/
関連記事
- GitHub(ギットハブ)の使い方:グループの作成編
ソフトウェア開発プロジェクトの共有Webサービス「GitHub(ギットハブ)」を「日本語で」分かりやすく説明するシリーズ、今回はグループの作成と設定を解説します。 - プルリクエスト/レビューを取り込んだ、よりシンプルなGitHub Flowの運用を図解する
数回にわたってgit-flowとGitHub Flowを使ったGitの活用テクニックを紹介します。最終回は、GitHubが採用している、git-flowよりシンプルな構成のブランチ管理フローについてです。5つの運用ルールや開発の流れを図を交えて解説します。 - GitHubをもっとソーシャルに使いこなすための7つ道具
「Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部)
Copyright © ITmedia, Inc. All Rights Reserved.