ここまでの作業の中で、ローカルリポジトリを元にリモートリポジトリを新規作成しました。次は、既存のリモートリポジトリをローカルに取り込む手順を解説します。
「リモートリポジトリ上の既存プロジェクトのソースコードを取得する」「別のPCで行う作業のためにリモートリポジトリからソースコードを取得する」などのケースをイメージしてみてください。
今回は、「リモートリポジトリを作成する」で作成したリモートリポジトリを「ローカルリポジトリを作成する」で扱ったディレクトリとは別のディレクトリに取り込みます。
リモートリポジトリのURLはGitHubのリポジトリページ上の「Clone or Download」をクリックすると表示できます。
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」ファイルに対する変更が反映されているはずです。
「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の機能を試すためのリポジトリです。
本稿ではGitHub上に「リモートリポジトリ」を作成し、「リモートリポジトリ」に対する基本操作を試していきました。
本記事で初めて登場したGitのコマンドは以下の通りです。
次回の記事では「プルリクエスト」について解説する予定です。お楽しみに!
クラスメソッド株式会社 iPhoneアプリサービス事業部所属のプログラマーです。iOSアプリの開発がメインですが、デザインやAWSなども勉強中です。
ブログ:http://dev.classmethod.jp/author/hiraya-shingo/
Copyright © ITmedia, Inc. All Rights Reserved.