リモートブランチを操作する - Git による版管理環境を構築する

SPECIAL


リモートブランチを操作する

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

ベアリポジトリから clone でワーキングコピーを取得すると、その取得元のベアリポジトリは、リモートリポジトリとしてワーキングコピーで管理されます。

現在のワーキングコピーが、どのリモートリポジトリと関連付けられているかは、次のようにすることで、確認することができるようになっていました。

git remote -v

このようにすることで、関連するリモートリポジトリの一覧が、次のように画面に表示されました。

origin /Volumes/Data/Temp/git-test/bare.git (fetch)
origin /Volumes/Data/Temp/git-test/bare.git (push)

上記の例では、ローカルファイルシステム上のベアリポジトリから取得したワーキングコピーでしたが、リモートから取得した場合には "ssh://GITSERVER/home/git/bare.git" というような表示になります。

また、上記の左側の文字列は、右側のベアリポジトリに付けられたショートネームになっています。

そしてこの "origin" という名前は、ベアリポジトリから "clone" でソースコードを取得した際に付けられるショートネームになります。

リモートリポジトリを登録する

ワーキングコピーにリモートリポジトリを追加したい場合には、次のようにします。

git remote add remote1 ssh://GITSERVER/home/git/repo1.git

このようにすることで、現在のワーキングコピーに "ssh://GITSERVER/home/git/repo1.git" というリモートリポジトリが "remote1" というショートネームで追加されました。

この、追加したリモートリポジトリを使って、そこから自分のワーキングコピーにソースコードを fetch や pull できるようになります。

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

登録したリモートリポジトリの内容を確認するには、次のようにします。

git remote show ショートネーム

このようにすることで、そのリポジトリに登録されているブランチの一覧や、現在選択されているブランチといった情報を、画面で確認することができるようになっています。

登録したリモートリポジトリから、ブランチ等の情報をローカルリポジトリに取り込むには、次のようにします。

git fetch ショートネーム

このようにすることで、指定したリモートリポジトリに登録されているブランチ等の情報を、ローカルリポジトリに取り込むことができました。以降も、リモートリポジトリの変更をローカルに取り込みたいときには、このコマンドを実行します。

 

リモートリポジトリに存在するブランチを確認するには、次のようにします。

git branch -a

このようにすることで、リモートリポジトリとローカルリポジトリとに存在する、選択可能なブランチの全てと、現在選択中のブランチが画面に表示されます。

リモートリポジトリからデータを取得する

リモートブランチのデータは、次のようにしてローカルのワーキングコピーに取り込みます。

git checkout -b ローカルブランチ名 ショートネーム/リモートブランチ名

このようにすることで、ローカルリポジトリに、上記で指定したローカルブランチ名のブランチが作成されて、そこにリモートブランチのデータが取得されて、ワーキングコピーがそのブランチの内容に切り替わります。

また、リモートブランチの内容をローカルのワーキングコピーにマージしたい場合には、次のようにします。

git pull ショートネーム リモートブランチ名

これで、ショートネームに指定したリモートリポジトリから、指定したブランチの内容を、ローカルのワーキングコピーにマージすることができる感じでした。

リモートリポジトリへデータを転送する

ローカルのワーキングコピーで編集したデータを、リモートリポジトリに転送したい場合には、次のようにします。

git push ショートネーム ローカルブランチ名:リモートブランチ名

このようにすることで、現在のローカルブランチの状態を、ショートネームで指定したリモートリポジトリの、指定したブランチへ転送することができます。

ただしこのとき、自分がローカルにそのリモートリポジトリを取り込んでから、誰かがリモートリポジトリを更新した場合には、更新された情報をいったんローカルに fetch して取り込んでからでないと、リモートへ転送することができないそうです。

 

また、ローカルリポジトリでタグを作成した場合には、次のようにしてタグ情報をリモートリポジトリに反映させることができます。

git push ショートネーム タグ名

この方法だと 1 つのタグだけしか転送できないので、全てのタグを転送したい場合には、次のようにします。

git push ショートネーム --tags

これで、リモートリポジトリ側に反映されていないすべてのタグを、一度に転送することができます。

リモートリポジトリの登録を解除する

登録したリモートリポジトリを、ワーキングコピーから削除したい場合には、次のようにします。

git remote rm ショートネーム

このようにすることで、自分が使う必要のなくなったリモートリポジトリを、ローカルから削除することができます。

リモートリポジトリのショートネームを変更する

既にローカルに登録済みのリモートリポジトリのショートネームを変更したい場合は、次のようにします。

git remote rename 旧ショートネーム 新ショートネーム

これで、以後は新しいショートネームで、リモートリポジトリを操作することができるようになります。

リモートリポジトリの URL を変更する

登録済みのリモートリポジトリが移動などで場所が変更になった場合は、そのワーキングツリーで URL を変更する必要があります。

git remote set-url ショートネーム URL

git fetch ショートネーム

例えば origin リポジトリの URL が変更になった場合には、ショートネームは "origin" を指定します。

git fetch は直ぐには必要ないかも知れませんが、これで変更された URL を使えることの確認になると思います。

リモートリポジトリからブランチを削除する

リモートリポジトリに登録されているブランチを削除したい場合には、次のようにします。

git push ショートネーム :リモートブランチ名

このようにすることで、ショートネームで指定したリモートブランチ上に保存されている、リモートブランチ名で指定したブランチが削除されます。

コマンドの構文的には、コロンの右側の "何もないローカルブランチ" でリモート上の指定したブランチを置き換えるという意味合いになっています。

 

目次