セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ
デバッグ
メール
外部システム
サーバー管理
- 2.45.1 → 2.47.0 変更なし
-
2.45.0
04/29/24
- 2.37.1 → 2.44.2 変更なし
-
2.37.0
06/27/22
- 2.36.1 → 2.36.6 変更なし
-
2.36.0
04/18/22
- 2.35.1 → 2.35.8 変更なし
-
2.35.0
01/24/22
- 2.30.1 → 2.34.8 変更なし
-
2.30.0
12/27/20
- 2.29.1 → 2.29.3 変更なし
-
2.29.0
10/19/20
- 2.23.1 → 2.28.1 変更なし
-
2.23.0
08/16/19
- 2.18.1 → 2.22.5 変更なし
-
2.18.0
06/21/18
- 2.17.1 → 2.17.6 変更なし
-
2.17.0
04/02/18
- 2.10.5 → 2.16.6 変更なし
-
2.9.5
07/30/17
- 2.8.6 変更なし
-
2.7.6
07/30/17
-
2.6.7
05/05/17
- 2.4.12 → 2.5.6 変更なし
-
2.3.10
09/28/15
- 2.1.4 → 2.2.3 変更なし
-
2.0.5
12/17/14
概要
git remote [-v | --verbose] git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <URL> git remote rename [--[no-]progress] <old> <new> git remote remove <name> git remote set-head <name> (-a | --auto | -d | --delete | <branch>) git remote set-branches [--add] <name> <branch>… git remote get-url [--push] [--all] <name> git remote set-url [--push] <name> <newurl> [<oldurl>] git remote set-url --add [--push] <name> <newurl> git remote set-url --delete [--push] <name> <URL> git remote [-v | --verbose] show [-n] <name>… git remote prune [-n | --dry-run] <name>… git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…]
コマンド
引数なしで、既存のリモートのリストを表示します。リモートに対して操作を実行するために、いくつかのサブコマンドが利用可能です。
- add
-
<URL>
にあるリポジトリに対して、<name>
という名前のリモートを追加します。その後、コマンドgit fetch <name>
を使用して、リモート追跡ブランチ<name>/<branch>
を作成および更新できます。-f
オプションを使用すると、リモート情報の設定直後にgit fetch <name>
が実行されます。--tags
オプションを使用すると、git fetch <name>
はリモートリポジトリからすべてのタグをインポートします。--no-tags
オプションを使用すると、git fetch <name>
はリモートリポジトリからタグをインポートしません。デフォルトでは、フェッチされたブランチのタグのみがインポートされます(git-fetch[1]を参照)。
-t <branch>
オプションを使用すると、リモートがrefs/remotes/<name>/
名前空間の下のすべてのブランチを追跡するためのデフォルトのglob refspecの代わりに、<branch>
のみを追跡するためのrefspecが作成されます。すべてのブランチを取得せずに複数のブランチを追跡するために、複数の-t <branch>
を指定できます。-m <master>
オプションを使用すると、シンボリック参照refs/remotes/<name>/HEAD
はリモートの<master>
ブランチを指すように設定されます。set-headコマンドも参照してください。--mirror=fetch
でフェッチミラーが作成されると、参照はrefs/remotes/名前空間に保存されず、リモート上のrefs/のすべてがローカルリポジトリのrefs/に直接ミラーリングされます。フェッチはローカルコミットを上書きするため、このオプションはベアリポジトリでのみ意味があります。--mirror=push
でプッシュミラーが作成されると、git push
は常に--mirror
が渡されたかのように動作します。 - rename
-
<old>
という名前のリモートを<new>
に名前変更します。リモートのすべてのリモート追跡ブランチと構成設定が更新されます。<old>
と<new>
が同じで、<old>
が$GIT_DIR/remotes
または$GIT_DIR/branches
の下のファイルである場合、リモートは構成ファイル形式に変換されます。 - remove
- rm
-
<name>
という名前のリモートを削除します。リモートのすべてのリモート追跡ブランチと構成設定が削除されます。 - set-head
-
名前付きリモートのデフォルトブランチ(つまり、シンボリック参照
refs/remotes/<name>/HEAD
のターゲット)を設定または削除します。リモートのデフォルトブランチは必須ではありませんが、特定のブランチの代わりにリモートの名前を指定できます。たとえば、origin
のデフォルトブランチがmaster
に設定されている場合、通常origin/master
を指定する場所であればどこでもorigin
を指定できます。-d
または--delete
を使用すると、シンボリック参照refs/remotes/<name>/HEAD
が削除されます。-a
または--auto
を使用すると、リモートにクエリを実行してHEAD
を特定し、シンボリック参照refs/remotes/<name>/HEAD
が同じブランチに設定されます。たとえば、リモートのHEAD
がnext
を指している場合、git remote set-head origin -a
はシンボリック参照refs/remotes/origin/HEAD
をrefs/remotes/origin/next
に設定します。これはrefs/remotes/origin/next
がすでに存在する場合にのみ機能します。そうでない場合は、最初にフェッチする必要があります。シンボリック参照
refs/remotes/<name>/HEAD
を明示的に設定するには、<branch>
を使用します。たとえば、git remote set-head origin master
はシンボリック参照refs/remotes/origin/HEAD
をrefs/remotes/origin/master
に設定します。これはrefs/remotes/origin/master
がすでに存在する場合にのみ機能します。そうでない場合は、最初にフェッチする必要があります。 - set-branches
-
名前付きリモートで追跡されるブランチのリストを変更します。これは、リモートの初期設定後、利用可能なリモートブランチのサブセットを追跡するために使用できます。
名前付きブランチは、
git remote add
コマンドラインで-t
オプションを指定した場合と同じように解釈されます。--add
を使用すると、現在追跡されているブランチのリストを置き換えるのではなく、そのリストに追加されます。 - get-url
-
リモートのURLを取得します。
insteadOf
およびpushInsteadOf
の設定がここで展開されます。デフォルトでは、最初のURLのみが表示されます。--push
を使用すると、フェッチURLではなくプッシュURLがクエリされます。--all
を使用すると、リモートのすべてのURLが表示されます。 - set-url
-
リモートのURLを変更します。正規表現
<oldurl>
(<oldurl>
が指定されていない場合は最初のURL)に一致するリモート<name>
の最初のURLを<newurl>
に設定します。<oldurl>
がどのURLにも一致しない場合は、エラーが発生し、何も変更されません。--push
を使用すると、フェッチURLではなくプッシュURLが操作されます。--add
を使用すると、既存のURLを変更するのではなく、新しいURLが追加されます。--delete
を使用すると、既存のURLを変更するのではなく、正規表現<URL>
に一致するすべてのURLがリモート<name>
に対して削除されます。プッシュ以外のすべてのURLを削除しようとするとエラーになります。プッシュURLとフェッチURLは、異なるように設定できますが、同じ場所を参照する必要があることに注意してください。プッシュURLにプッシュした内容は、すぐにフェッチURLからフェッチした場合に見えるはずのものです。ある場所(たとえば、アップストリーム)からフェッチし、別の場所(たとえば、公開リポジトリ)にプッシュする場合は、2つの別々のリモートを使用します。
- show
-
リモート
<name>
に関する情報を提供します。-n
オプションを使用すると、リモートヘッドは最初にgit ls-remote <name>
でクエリされません。代わりにキャッシュされた情報が使用されます。 - prune
-
<name>
に関連付けられた古い参照を削除します。デフォルトでは、<name>
の下の古いリモート追跡ブランチが削除されますが、グローバル構成とリモートの構成によっては、そこにプッシュされていないローカルタグも削除する可能性があります。git fetch --prune <name>
と同等ですが、新しい参照はフェッチされません。さまざまな構成に応じて何を削除するかについては、git-fetch[1]の「削除」セクションを参照してください。
--dry-run
オプションを使用すると、どのブランチが削除されるかが報告されますが、実際には削除されません。 - update
-
remotes.<group>
で定義されているリポジトリ内のリモートまたはリモートグループの更新をフェッチします。コマンドラインでグループもリモートも指定されていない場合は、設定パラメータ remotes.default が使用されます。remotes.default が定義されていない場合は、設定パラメータremote.<name>.skipDefaultUpdate
が true に設定されていないすべてのリモートが更新されます。(git-config[1]を参照)。--prune
オプションを使用すると、更新されたすべてのリモートに対してプルーニングが実行されます。
議論
リモートの設定は、remote.origin.url
および remote.origin.fetch
設定変数を使用して行われます。(git-config[1]を参照)。
終了ステータス
成功した場合、終了ステータスは 0
です。
add、rename、remove などのサブコマンドが問題のリモートを見つけられない場合、終了ステータスは 2
です。リモートがすでに存在する場合、終了ステータスは 3
です。
その他のエラーの場合、終了ステータスはゼロ以外の任意の値になる可能性があります。
例
-
新しいリモートを追加し、フェッチして、そこからブランチをチェックアウトします
$ git remote origin $ git branch -r origin/HEAD -> origin/master origin/master $ git remote add staging git://git.kernel.org/.../gregkh/staging.git $ git remote origin staging $ git fetch staging ... From git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging * [new branch] master -> staging/master * [new branch] staging-linus -> staging/staging-linus * [new branch] staging-next -> staging/staging-next $ git branch -r origin/HEAD -> origin/master origin/master staging/master staging/staging-linus staging/staging-next $ git switch -c staging staging/master ...
-
git clone を模倣するが、選択されたブランチのみを追跡する
$ mkdir project.git $ cd project.git $ git init $ git remote add -f -t master -m master origin git://example.com/git.git/ $ git merge origin
GIT
git[1] スイートの一部