设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
修补
调试
电子邮件
外部系统
服务器管理员
指南
管理
管道命令
- 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
创建提取镜像时,ref 不会存储在 refs/remotes/ 命名空间中,而是远程上的所有内容都将直接镜像到本地存储库的 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。将与正则表达式 <oldurl> 匹配的远程 <name> 的第一个 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])。
示例
-
添加新的远程,获取并从中签出分支
$ 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] 套件的一部分