セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.45.1 → 2.50.1 変更なし
-
2.45.0
2024-04-29
- 2.37.1 → 2.44.4 変更なし
-
2.37.0
2022-06-27
- 2.36.1 → 2.36.6 変更なし
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 変更なし
-
2.35.0
2022-01-24
- 2.30.1 → 2.34.8 変更なし
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 変更なし
-
2.29.0
2020-10-19
- 2.23.1 → 2.28.1 変更なし
-
2.23.0
2019-08-16
- 2.18.1 → 2.22.5 変更なし
-
2.18.0
2018-06-21
- 2.17.1 → 2.17.6 変更なし
-
2.17.0
2018-04-02
- 2.10.5 → 2.16.6 変更なし
-
2.9.5
2017-07-30
- 2.8.6 変更なし
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.4.12 → 2.5.6 変更なし
-
2.3.10
2015-09-28
- 2.1.4 → 2.2.3 変更なし
-
2.0.5
2014-12-17
概要
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> オプションを使用すると、デフォルトの glob リファレンススペックでrefs/remotes/
<name>/
名前空間のすべてのブランチを追跡する代わりに、<branch> のみを追跡するリファレンススペックが作成されます。すべてのブランチを取得せずに複数のブランチを追跡するには、複数の-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
がすでに存在する場合にのみ機能します。存在しない場合は、最初にフェッチする必要があります。<branch> を使用して、シンボリック参照
refs/remotes/
<name>/HEAD
を明示的に設定します。たとえば、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を変更します。リモート <name> の regex <oldurl> に一致する最初のURL(<oldurl> が指定されていない場合は最初のURL)を <newurl> に設定します。<oldurl> がどのURLにも一致しない場合、エラーが発生し、何も変更されません。
--push
を指定すると、フェッチURLではなくプッシュURLが操作されます。--add
を指定すると、既存のURLを変更するのではなく、新しいURLが追加されます。--delete
を指定すると、既存のURLを変更するのではなく、regex <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] の PRUNING セクションを参照してください。
--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]スイートの一部