番外編 Gitを使っていく 第5回
〜クローン、プッシュ、プル〜
前回自分のリモートリポジトリを作成しました。これで第三者に自分の資源をシェアできるようになったわけです。
さらに、友達から、ソースの一部を修正して、同じ場所に戻してもらうこともできるかもしれません。
(と、うまいこと書きつつそんなことプロジェクトや会社以外ほとんどありません^^;)
今回は、この作ったリモートリポジトリとのやりとりを考えていきます。
ただし、この段階では自分のPCの中でバージョン管理しているにすぎません。
ここから、他の人と資源やドキュメントを共有できるように、リモートリポジトリとの接続を考えて生きます。
1.Gitリポジトリのクローン(複製)をする
早速、自分の作ったリモートリポジトリをローカル端末に複製しましょう。
任意の場所で、右クリック→Gitクローン(複製)を選択します。
下のようなクローン画面が出てきます。
URLのところには、前回作成したGitリポジトリのパスが自動的に入っていると思います。
その下のディレクトリはローカルリポジトリを作成する場所です。任意の場所を指定してください。
画面の場合、Cドライブの直下を選択しています。
このように成功の文字が出ればクローン完了です。
画面の赤枠資産が、クローンされたGitリポジトリです。
<失敗したら・・・>
以下のようなメッセージが出ることがあります。
この場合、SSHの関係がある場合があります。
gitは正常に終了しませんでした (終了コード 128) (218 ms @ 2013/05/10 9:26:08)
任意の場所で右クリック→tortoiseGit→設定を選択します。
以下の画面が出てきますので、ネットワークを選択します。
SSHクライアントの箇所が下のように、tortoiseGitのPlinkとなっています。
これをmsys版のGit\binにあるssh.exeに変えてみます。
以上で、完了です。
2.ローカル資源をリモートリポジトリにプッシュする
さて、複製したリポジトリを眺めてみます。
実は、すでにreadmeというファイルがいます。
これは、GitHubでリモートリポジトリを作ったときに記入したdescriptionの内容が書かれています。
Readme.md
(リポジトリ名) =================== This is ・・・(省略) |
これは特に気にしなくていいです。
もう少しGitHubでの交流が進んできたら、更新すればよいでしょう。
任意の場所で、適当なテキストファイルを作ってみました。
ここではabc.txtとしました。(?マークがつきます)
このファイルはまだどこのリポジトリにも管理されていないファイルです。
以下のように、ファイル上で右クリック→TortoiseGit→追加を選択します。
チェックが入っていることを確認して、OKを押下します。
追加の状態です。
※まだコミットされていません。
そのまま続けて、以下の画面が出ます。
コミットします。
コミット画面が表示されるので、コメントと追加したファイルにチェックが入っていることを確認して、
OKを押下します。
もし、追加と別に、コミットを行いたい場合は、OKを選択して、一度エクスプローラに戻り、
改めて、コミットします。
この状態が、コミット完了の状態です。
おさらいです。
Gitへの追加(add)、コミット(commit)は、あくまでローカルリポジトリのままですよ。
では、これから本題となるプッシュです。
コミットが完了しているローカルリポジトリ上で右クリック→TortoiseGit→プッシュ(リモートへ反映)を選択します。
下の画面が出ます。
ローカルには、masterがもともと設定されています。
リモートもmasterでよいです。
あて先ですが、ここで、管理ボタンを押下します。
管理画面です。
リモートには、接続するリモートリポジトリの名前をつけます。
デフォルトでoriginが入っているので、そのままでもよいです。
URLには、前回のべた以下のようなパスを入れます。
もし、あなたが始めてリモートリポジトリを触ったのなら、GitHubに登録したパスが出てきますので、
それを選択してください。
パス:
https://github.com/(アカウント名)/(リポジトリ名)
OKを押下すると、元の画面に戻るので、さらにOKを押下します。
通信が始まります。
途中で、ユーザ名とパスワードを尋ねられます。
ここでは、GitHubに登録したユーザ名とパスワードを入力します。
ユーザ名:
パスワード:
成功が出れば完了です。
ためしに、GitHub1に行き、リモートリポジトリを眺めてみましょう。
下のように、abc.txtがリモートに反映されています。
3.リモート資源をローカルリポジトリにプルする
最後に、プルをします。
まずは、テキストファイルを適当に修正しましょう。
ここでは、「はじめての・・・」と記入し、リモートリポジトリにプッシュしていたとします。
<<リモートリポジトリの状態>>
abc.txt
はじめてのGitリポジトリです。 |
次に、ローカル端末で、abc.txtに適当な修正を加えます。
この状態で、ローカルでコミットしてしまいましょう。
<<ローカルリポジトリの状態>>
abc.txt
はじめてのGitリポジトリです。 2日めの更新ですが、間違えました。 |
下のように、ローカルリポジトリ上で、右クリック→TortoiseGit→プル(ローカルに反映)を選択します。
プル画面が表示されます。リモートは先ほど作ったoriginを、リモートブランチはmasterを選択します。
成功と表示されたら、完了です。
ここで、差分の起きた資源(ここではabc.txt)で右クリック→以前のバージョンの差分します。
以下のマージ画面が出ます。
以前の1行のバージョンと2行のバージョンが出ます。
一度、2行のバージョンでローカルコミットしても、リモートからは1行のバージョンが呼び出せるわけです。
次回は、差分の解消について説明しますが、今回はこれで終了し、2行目をプッシュして、差分をなくしておきましょう。
4.ローカル資源とリモートリポジトリを同期する
さて、ここでマージについての説明は後回しにして、同期してローカルの状態をリモートに反映して終わりにします。
まず、ローカルリポジトリ上で右クリック→Git同期を選択します。
以下のような画面が出てきます。
ここで、2回目の間違いとした情報をリモートにプッシュすればリモートリポジトリと同期が取れることになります。
そちらを選択して、プッシュを押下します。
このあと、リモートリポジトリのユーザ名とパスワードが聞かれます。
入力して、下記の成功画面が出れば完了です。
念のため、GitHubを見てみます。
下のように、2行目のメッセージが追加されています。
さて、次回は差分の扱い方について、解説したいと思います。
追加、コミット、クローン、プッシュ、プル、同期 などなど用語がたくさん増えてきました。
よく整理しておきましょう。
■ 参考サイト■
サルでもわかるGit入門
http://www.backlog.jp/git-guide/intro/intro1_1.html
ipentec コラム
TortoiseGitでリポジトリに接続すると(終了コード 128) が表示され接続できない
http://www.ipentec.com/document/document.aspx?page=windows-tortoise-git-exit-code-128&culture=ja-jp
Raccoon's homepage Copyright (C) 2000-2013 あらいベアー