• git-remote
    • 名称
    • 概要
    • 描述
    • OPTIONS
    • COMMANDS
    • 讨论
    • 例子
    • 也可以看看
    • GIT

    git-remote

    原文: https://git-scm.com/docs/git-remote

    名称

    git-remote - 管理一组跟踪的存储库

    概要

    1. git remote [-v | --verbose]
    2. git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>
    3. git remote rename <old> <new>
    4. git remote remove <name>
    5. git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
    6. git remote set-branches [--add] <name> <branch>…​
    7. git remote get-url [--push] [--all] <name>
    8. git remote set-url [--push] <name> <newurl> [<oldurl>]
    9. git remote set-url --add [--push] <name> <newurl>
    10. git remote set-url --delete [--push] <name> <url>
    11. git remote [-v | --verbose] show [-n] <name>…​
    12. git remote prune [-n | --dry-run] <name>…​
    13. git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…​]

    描述

    管理您跟踪其分支的存储库集(“远程”)。

    OPTIONS

    1. -v
    1. --verbose

    稍微冗长一点,并在名字后显示远程网址。注意:必须放在remotesubcommand之间。

    COMMANDS

    没有参数,显示现有遥控器的列表。有几个子命令可用于对遥控器执行操作。

    1. add

    添加名为< name>的远程名称对于< url>的存储库。然后,命令git fetch &lt;name&gt;可用于创建和更新远程跟踪分支< name> /< branch>。

    使用-f选项,在设置远程信息后立即运行git fetch &lt;name&gt;

    使用--tags选项,git fetch &lt;name&gt;从远程存储库导入每个标记。

    使用--no-tags选项,git fetch &lt;name&gt;不会从远程存储库导入标记。

    默认情况下,仅导入已获取分支上的标记(请参阅 git-fetch [1] )。

    使用-t &lt;branch&gt;选项,而不是默认的glob refspec用于远程跟踪refs/remotes/&lt;name&gt;/命名空间下的所有分支,而是创建仅跟踪&lt;branch&gt;的refspec。您可以提供多个-t &lt;branch&gt;来跟踪多个分支而不占用所有分支。

    使用-m &lt;master&gt;选项,symbolic-ref refs/remotes/&lt;name&gt;/HEAD被设置为指向远程的&lt;master&gt;分支。另请参见set-head命令。

    使用--mirror=fetch创建获取镜像时,refs不会存储在 refs / remotes / 命名空间中,而是遥控器上 refs / 中的所有内容都将被直接镜像进入本地存储库中的 refs / 。此选项仅在裸存储库中有意义,因为获取将覆盖任何本地提交。

    使用--mirror=push创建推镜时,git push将始终表现为--mirror通过。

    1. rename

    重命名名为< old>的远程名称到< new>。将更新远程的所有远程跟踪分支和配置设置。

    如果< old>和< new>是相同的,< old>是$GIT_DIR/remotes$GIT_DIR/branches下的文件,远程转换为配置文件格式。

    1. remove
    1. rm

    删除名为< name>的远程数据库。将删除远程的所有远程跟踪分支和配置设置。

    1. set-head

    设置或删除指定远程的默认分支(即symbolic-ref refs/remotes/&lt;name&gt;/HEAD的目标)。不需要具有远程的默认分支,但允许指定远程的名称来代替特定分支。例如,如果origin的默认分支设置为master,则可以在通常指定origin/master的任何位置指定origin

    使用-d--delete,删除符号ref refs/remotes/&lt;name&gt;/HEAD

    使用-a--auto,查询远程以确定其HEAD,然后将symbolic-ref refs/remotes/&lt;name&gt;/HEAD设置为同一分支。例如,如果远程HEAD指向next,“git remote set-head origin -a”将symbolic-ref refs/remotes/origin/HEAD设置为refs/remotes/origin/next。这仅在refs/remotes/origin/next已存在时才有效;如果不是,它必须先取出。

    使用&lt;branch&gt;显式设置symbolic-ref refs/remotes/&lt;name&gt;/HEAD。例如,“git remote set-head origin master”将symbolic-ref refs/remotes/origin/HEAD设置为refs/remotes/origin/master。这仅在refs/remotes/origin/master已存在时才有效;如果不是,它必须先取出。

    1. set-branches

    更改命名远程跟踪的分支列表。在初始设置遥控器之后,这可用于跟踪可用远程分支的子集。

    命名分支将被解释为使用 git remote add 命令行上的-t选项指定。

    使用--add,而不是替换当前跟踪的分支列表,添加到该列表。

    1. get-url

    检索远程的URL。这里扩展了insteadOfpushInsteadOf的配置。默认情况下,仅列出第一个URL。

    使用--push,将查询推送URL而不是提取URL。

    使用--all,将列出远程的所有URL。

    1. set-url

    更改远程的URL。设置远程< name>的第一个网址匹配正则表达式< oldurl> (如果没有给出< oldurl>则是第一个URL)到< newurl>。如果< oldurl>与任何URL都不匹配,发生错误并且没有任何更改。

    使用--push,操纵推送URL而不是获取URL。

    使用--add,不添加现有URL,而是添加新URL。

    使用--delete,而不是更改现有网址,所有匹配正则表达式< url>的网址已删除远程< name>。尝试删除所有非推送URL是一个错误。

    请注意,推送URL和提取URL即使可以设置不同,仍必须引用相同的位置。您推送到推送URL的内容应该是您从提取URL中立即获取的内容。如果您尝试从一个位置(例如您的上游)获取并推送到另一个位置(例如您的发布存储库),请使用两个单独的遥控器。

    1. show

    提供有关远程< name>的一些信息。

    使用-n选项,不会先使用git ls-remote &lt;name&gt;查询远程磁头;而是使用缓存的信息。

    1. prune

    删除与< name>关联的陈旧引用。默认情况下,< name>下的过时远程跟踪分支被删除,但根据全局配置和远程配置,我们甚至可以修剪那些尚未推送的本地标签。相当于git fetch --prune &lt;name&gt;,但不会获取新的引用。

    请参阅 git-fetch [1] 的PRUNING部分,了解它将根据各种配置进行修剪的内容。

    使用--dry-run选项,报告将修剪哪些分支,但不实际修剪它们。

    1. update

    获取由远程数据库定义的存储库中的远程数据库或远程组的更新。< group>。如果在命令行中既未指定group也未指定remote,则将使用配置参数remotes.default;如果未定义remotes.default,则所有没有配置参数remote的遥控器将被更新。< name> .skipDefaultUpdate设置为true。 (参见 git-config [1] )。

    使用--prune选项,对所有已更新的遥控器运行修剪。

    讨论

    使用remote.origin.urlremote.origin.fetch配置变量实现远程配置。 (参见 git-config [1] )。

    例子

    • 添加一个新的远程,获取,并从中检出一个分支

      1. $ git remote
      2. origin
      3. $ git branch -r
      4. origin/HEAD -&gt; origin/master
      5. origin/master
      6. $ git remote add staging git://git.kernel.org/.../gregkh/staging.git
      7. $ git remote
      8. origin
      9. staging
      10. $ git fetch staging
      11. ...
      12. From git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
      13. * [new branch] master -&gt; staging/master
      14. * [new branch] staging-linus -&gt; staging/staging-linus
      15. * [new branch] staging-next -&gt; staging/staging-next
      16. $ git branch -r
      17. origin/HEAD -&gt; origin/master
      18. origin/master
      19. staging/master
      20. staging/staging-linus
      21. staging/staging-next
      22. $ git checkout -b staging staging/master
      23. ...
    • 模仿 git clone 但仅跟踪选定的分支

      1. $ mkdir project.git
      2. $ cd project.git
      3. $ git init
      4. $ git remote add -f -t master -m master origin git://example.com/git.git/
      5. $ git merge origin

    也可以看看

    git-fetch [1] git-branch [1] git-config [1]

    GIT

    部分 git [1] 套件