設定與組態
取得與建立專案
基本快照
分支與合併
分享與更新專案
檢查與比較
修補
除錯
電子郵件
外部系統
伺服器管理
指南
- gitattributes
- 命令列介面規範
- Git 日常使用
- 常見問題 (FAQ)
- 詞彙表
- 掛鉤 (Hooks)
- gitignore
- gitmodules
- 修訂版本 (Revisions)
- 子模組
- 教學
- 工作流程
- 所有指南...
管理
底層命令 (Plumbing Commands)
- 2.54.0 → 2.55.0 無變更
-
2.53.0
2026-02-02
- 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
概要
gitremote[-v|--verbose]gitremoteadd[-t<branch>] [-m<master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <URL>gitremoterename[--[no-]progress] <old> <new>gitremoteremove<name>gitremoteset-head<name> (-a|--auto|-d|--delete| <branch>)gitremoteset-branches[--add] <name> <branch>…gitremoteget-url[--push] [--all] <name>gitremoteset-url[--push] <name> <newurl> [<oldurl>]gitremoteset-url--add[--push] <name> <newurl>gitremoteset-url--delete[--push] <name> <URL>gitremote[-v|--verbose]show[-n] <name>…gitremoteprune[-n|--dry-run] <name>…gitremote[-v|--verbose]update[-p|--prune] [(<group> | <remote>)…]
指令
若無任何參數,則列出現有的遠端儲存庫。可以使用多個子指令對遠端儲存庫進行操作。
add-
為位於 <URL> 的儲存庫新增一個名為 <name> 的遠端。之後即可使用
gitfetch<name> 指令來建立並更新遠端追蹤分支 <name>/<branch>。使用
-f選項時,會在設定遠端資訊後立即執行gitfetch<name>。使用
--tags選項時,gitfetch<name> 會匯入遠端儲存庫中的所有標籤。使用
--no-tags選項時,gitfetch<name> 不會匯入遠端儲存庫中的標籤。預設情況下,僅匯入已抓取(fetch)分支上的標籤(請參閱 git-fetch[1])。
使用
-t<branch> 選項時,將建立一個僅追蹤 <branch> 的參照規格(refspec),而非預設追蹤refs/remotes/<name>/命名空間下所有分支的萬用字元參照規格。您可以提供多個-t<branch> 以追蹤多個分支,而無需抓取所有分支。使用
-m<master> 選項時,會設定一個符號參照(symbolic-ref)refs/remotes/<name>/HEAD指向遠端的 <master> 分支。另請參閱 set-head 指令。當使用
--mirror=fetch建立抓取鏡像時,參照不會儲存在refs/remotes/命名空間中,而是遠端refs/下的所有內容會直接鏡像到本地儲存庫的refs/中。此選項僅適用於純(bare)儲存庫,因為抓取操作會覆蓋任何本地提交。當使用
--mirror=push建立推送鏡像時,gitpush的行為將始終如同執行了--mirror一樣。 rename-
將名為 <old> 的遠端重新命名為 <new>。該遠端的所有遠端追蹤分支與設定值都會隨之更新。
若 <old> 與 <new> 相同,且 <old> 是位於
$GIT_DIR/remotes或$GIT_DIR/branches下的一個檔案,則該遠端會被轉換為設定檔格式。 removerm-
移除名為 <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已存在時有效;若不存在,必須先進行抓取。 set-branches-
變更由該遠端所追蹤的分支列表。此指令可用於在遠端初始設定後,變更追蹤的遠端分支子集。
指定的這些分支將被視為如同在
gitremoteadd指令列中使用-t選項指定一樣。使用
--add時,不會取代目前的追蹤分支列表,而是將新分支加入該列表。 get-url-
擷取遠端的 URL。此處會展開
insteadOf與pushInsteadOf的設定。預設僅列出第一個 URL。使用
--push時,會查詢推送 URL 而非抓取 URL。使用
--all時,將列出該遠端的所有 URL。 set-url-
變更遠端的 URL。將遠端 <name> 中符合正規表示式 <oldurl> 的第一個 URL(若未給定 <oldurl> 則為第一個 URL)設定為 <newurl>。若 <oldurl> 不符合任何 URL,則會發生錯誤且不進行變更。
使用
--push時,操作的是推送 URL 而非抓取 URL。使用
--add時,不會變更現有的 URL,而是新增一個新的 URL。使用
--delete時,不會變更現有的 URL,而是刪除遠端 <name> 中所有符合正規表示式 <URL> 的 URL。嘗試刪除所有非推送 URL 會導致錯誤。請注意,推送 URL 與抓取 URL 即使可以設為不同,它們仍必須指向同一個位置。推送到推送 URL 的內容應與立即從抓取 URL 進行抓取時所看到的內容一致。如果您打算從某處抓取(例如上游),並推送到另一個地方(例如您的發佈儲存庫),請使用兩個不同的遠端。
show-
提供關於遠端 <name> 的資訊。
使用
-n選項時,不會先透過gitls-remote<name> 查詢遠端分支,而是直接使用快取的資訊。 prune-
刪除與 <name> 相關的過時參照。預設會刪除 <name> 下過時的遠端追蹤分支,但根據全域設定與該遠端的設定,甚至可能會修剪(prune)未推送到該處的本地標籤。等同於
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。
在任何其他錯誤情況下,結束狀態可能是其他非零值。
範例
-
新增一個遠端、抓取並檢出(check out)其中的一個分支
$ 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 ...
-
模擬
gitclone但僅追蹤選定的分支$ 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] 套件的一部分