設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.45.1 → 2.52.0 無更改
-
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> 的遠端。然後可以使用
gitfetch<name> 命令來建立和更新遠端跟蹤分支 <name>/<branch>。使用
-f選項時,在設定完遠端資訊後立即執行gitfetch<name>。使用
--tags選項時,gitfetch<name> 會從遠端倉庫匯入所有標籤。使用
--no-tags選項時,gitfetch<name> 不會從遠端倉庫匯入標籤。預設情況下,僅匯入已獲取分支上的標籤(請參閱 git-fetch[1])。
使用
-t<branch> 選項,而不是預設的 glob refspec 來跟蹤refs/remotes/<name>/名稱空間下的所有分支,而是建立一個僅跟蹤 <branch> 的 refspec。你可以給出多個-t<branch> 來跟蹤多個分支,而無需獲取所有分支。使用
-m<master> 選項,將設定一個符號引用refs/remotes/<name>/HEAD來指向遠端的 <master> 分支。另請參閱 set-head 命令。當使用
--mirror=fetch建立一個 fetch mirror 時,引用不會儲存在 refs/remotes/ 名稱空間中,而是遠端的 refs/ 下的任何內容都會直接映象到本地倉庫的 refs/ 中。此選項僅在裸倉庫中有意義,因為 fetch 會覆蓋任何本地提交。當使用
--mirror=push建立一個 push mirror 時,gitpush將始終表現得好像傳遞了--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,那麼gitremoteset-headorigin-a將把符號引用refs/remotes/origin/HEAD設定為refs/remotes/origin/next。只有當refs/remotes/origin/next已存在時,此操作才有效;否則,必須先進行 fetch。使用 <branch> 顯式設定符號引用
refs/remotes/<name>/HEAD。例如,gitremoteset-headoriginmaster將把符號引用refs/remotes/origin/HEAD設定為refs/remotes/origin/master。只有當refs/remotes/origin/master已存在時,此操作才有效;否則,必須先進行 fetch。 - set-branches
-
更改指定遠端跟蹤的分支列表。這可用於在遠端初始設定後跟蹤遠端可用分支的子集。
指定的受跟蹤分支將按照在
gitremoteadd命令列的-t選項中所指定的方式進行解釋。使用
--add時,不是替換當前跟蹤的分支列表,而是將新分支新增到該列表中。 - get-url
-
檢索遠端的 URL。在此會展開
insteadOf和pushInsteadOf的配置。預設情況下,僅列出第一個 URL。使用
--push時,查詢的是 push URL 而不是 fetch URL。使用
--all時,將列出遠端的所有 URL。 - set-url
-
更改遠端的 URL。將遠端 <name> 中第一個匹配正則表示式 <oldurl> 的 URL(如果未給出 <oldurl>,則為第一個 URL)更改為 <newurl>。如果 <oldurl> 不匹配任何 URL,則會發生錯誤且不進行任何更改。
使用
--push時,將操作 push URL 而不是 fetch URL。使用
--add時,不是更改現有 URL,而是新增新 URL。使用
--delete時,不是更改現有 URL,而是刪除遠端 <name> 中所有匹配正則表示式 <URL> 的 URL。嘗試刪除所有非 push URL 會導致錯誤。請注意,push URL 和 fetch URL 儘管可以設定不同,但它們仍然必須指向同一個地方。你推送到 push URL 的內容應該與你在立即從 fetch URL 獲取時看到的內容一致。如果你試圖從一個地方(例如你的上游)獲取,然後推送到另一個地方(例如你的釋出倉庫),請使用兩個獨立的遠端。
- show
-
提供關於遠端 <name> 的一些資訊。
使用
-n選項時,不會先使用gitls-remote<name> 查詢遠端 HEAD;而是使用快取的資訊。 - prune
-
刪除與 <name> 相關的陳舊引用。預設情況下,會刪除 <name> 下的陳舊遠端跟蹤分支,但根據全域性配置和遠端的配置,我們甚至可能會修剪未推送到那裡的本地標籤。相當於
gitfetch--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