设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
补丁
调试
邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.45.1 → 2.49.0 没有变化
-
2.45.0
2024-04-29
- 2.37.1 → 2.44.3 没有变化
-
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 refspec 来跟踪远程的所有分支refs/remotes/<name>/
命名空间,而是创建一个 refspec 来仅跟踪<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
-
更改指定远程跟踪的分支列表。这可用于在远程的初始设置之后跟踪可用远程分支的子集。
指定的 branches 将被解释为在使用
git remote add
命令行上使用-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
选项,不首先使用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] 套件的一部分