リモート操作

既存のリモートリポジトリを複製したい

$ git clone <url>

clone コマンドで複製した場合、リモートリポジトリを追跡するように自動で設定されます。 これによって、以降の push や fetch / pull コマンドで repository を省略した場合でも正しく変更内容を反映/取得することができるようになります。

入門編 【リポジトリの共有】 リモートリポジトリをクローンする 入門編 【チュートリアル2 リポジトリの共有】 リモートリポジトリをクローンする

リモートリポジトリを追加したい

$ git remote add <name> <url>

リモートリポジトリの一覧を表示したい

$ git remote

-v オプションを付けると、リモートリポジトリの詳細を表示することができます。

リモートリポジトリのブランチからローカルリポジトリのブランチを作成したい

$ git checkout <branch>

Gitの最近のバージョンだと、 checkout コマンドの引数にリモートリポジトリに存在するブランチを指定すると、リモートリポジトリのブランチからローカルリポジトリ上にブランチを作成することができます。 バージョンが古いために作成できなかった場合は、下記のように branch コマンドでブランチを作成してください。

$ git branch <branchname> origin/<branch>

リモートリポジトリにブランチを作成したい / ブランチに変更内容を反映したい

$ git push <repository> <refspec>

-u オプションを付けると、対象のブランチをリモートリポジトリに追跡させることができます。 これによって、以降の push や fetch / pull コマンドで repository を省略した場合でも正しく変更内容を反映/取得することができるようになります。

repository には、 remote add コマンドで追加したリポジトリ名のほかにもURLを直接指定することもできます。 repository を省略すると、追跡しているリモートリポジトリが指定されたものとされます。

refspec にはブランチ名などが指定できます。 refspec を省略すると、デフォルトではリモートリポジトリとローカルリポジトリの双方に存在するブランチが対象となります。

入門編 【リポジトリの共有】 リモートリポジトリにプッシュする 入門編 【チュートリアル2 リポジトリの共有】 リモートリポジトリにプッシュする

リモートリポジトリのブランチの変更内容を確認したい

$ git fetch <repository> <refspec>

リモートリポジトリでの変更内容を確認したいけど、ローカルリポジトリには反映させたくない場合に、 fetch コマンドを使います。 fetch コマンドでは、ローカルリポジトリのブランチは変更されません。

repository や refspec は省略することができます。 repository を省略した場合の挙動は、 push のときと同様です。 refspec を省略すると、デフォルトでは全てのブランチが対象となります。

リモートリポジトリのブランチの変更内容を取り込みたい

$ git pull <repository> <refspec>

pull コマンドによって、リモートリポジトリの変更内容がローカルリポジトリのブランチに反映されます。 「pull = fetch + merge」と理解しておけばいいでしょう。

repository や refspec は省略することができます。 repository を省略した場合の挙動は、 push のときと同様です。 refspec を省略すると、現在のブランチが対象となります。

入門編 【リポジトリの共有】 リモートリポジトリからプルする 入門編 【チュートリアル2 リポジトリの共有】 リモートリポジトリからプルする

リモートリポジトリのブランチを削除したい

$ git push --delete <repository> <branchname>

push コマンドに --delete オプションと <リモートリポジトリ名> <削除したいブランチ名> を指定して実行します。

1.7より前のバージョンの git では --delete オプションは使用できないため以下のように指定します。

$ git push <repository> :<branchname>

リモートリポジトリにタグを作成したい

$ git push <repository> <tagname>

–tags オプションを付けると、ローカルリポジトリに存在する全てのタグをリモートリポジトリに作成することができます。

リモートリポジトリのタグを削除したい

$ git push --delete <repository> <tagname>

push コマンドに --delete オプションと <リモートリポジトリ名> <削除したいタグ名> を指定して実行します。

1.7より前のバージョンの git では --delete オプションは使用できないため以下のように指定します。

$ git push <repository> :<tagname>

登録済みのリモートリポジトリのアドレスを変更したい

$ git remote set-url <name> <newurl>

指定した名前で登録されているリモートリポジトリのアドレスを <newurl> のアドレスに変更します。

登録済みのリモートリポジトリの名前を変更したい

$ git remote rename <old> <new>

<old> で指定した名前で登録されているリモートリポジトリの名前を <new> に変更します。