remote 命令

为了便于管理,Git 要求每个远程仓库必须指定一个别名。remote 命令就用于管理仓库别名的命令

  1. 远程仓库指的是托管在网络上的项目仓库。

  2. 通过 clone 命令克隆下来的仓库,默认的别名是 origin。

  3. 主要涉及的操作有:增(add)、删(remove)、改(rename,set-url)、查(show , get-url)。

常用命令

命令 解释 选项
git remote add <name> <url> 添加新的远程库
git remote remove <name> 删除指定的仓库
git remote rename <old> <new> 将仓库别名重命名为 new
git remote set-url <name> <newurl> 将仓库的 url 修改为 newurl
git remote 列出所有的远程库 -v 表示查看每个库的 url
git remote show <name> 查看指定库的详细信息
git remote get-url <name> 获得指定仓库的 url

在操作时,将别名与 url 的关系理解为 Map 集合 —— 其中别名是 key,url 是 value。


添加

git remote add <name> <url>:添加一个远程库,同时为该远程库指定别名,使用别名指代远程库地址

git remote add images https://github.com/birdandcliff/images.git

以后可以使用 images 代替对应的url。

使用该命令可以将本地已有的文件与远程仓库关联,从而可以将本地已有的文件提交到远程仓库中。


删除

使用 git remote remove <name> 移除别名对应的仓库。

$ git remote
demo
newo

$ git remote remove newo
$ git remote
demo

修改

修改别名

使用 git remote rename <old> <name> 修改某个远程库的别名。

对远程库重命名后,对应的分支也会发生变化,将其中关于别名部分换成新别名。

$ git remote -v
demo    https://github.com/birdandcliff/seturl.git (fetch)
demo    https://github.com/birdandcliff/seturl.git (push)

$ git remote -v
demo    https://github.com/birdandcliff/seturl.git (fetch)
demo    https://github.com/birdandcliff/seturl.git (push)

$ git remote rename demo demo2
$ git remote -v
demo2   https://github.com/birdandcliff/seturl.git (fetch)
demo2   https://github.com/birdandcliff/seturl.git (push)

可以看出, url 没有发生变化,但对应的别名已经修改过了。

修改 url

使用 git remote set-url <name> <newurl> 将指定的远程仓库地址修改为 newurl。

$ git remote -v
demo    https://github.com/birdandcliff/gitdemo.git (fetch)
demo    https://github.com/birdandcliff/gitdemo.git (push)

$ git remote set-url demo https://github.com/birdandcliff/seturl.git
$ git remote -v
demo    https://github.com/birdandcliff/seturl.git (fetch)
demo    https://github.com/birdandcliff/seturl.git (push)

修改仓库地址后,可以将本地文件提交提交到新的 url 中。


查看

可以查看所有的别名,也可以查看所有的别名与 url,还能通过别名查看指定的 url。

  1. git remote 会列出每一个远程库的别名。可以使用 -v (verbose,详细)选项指定列出详细信息。如下:

  2. git remote show <name> 可查看某个远程库的详细信息

  3. git remote get-url <name> 根据 name 查看指定的 url

$ git remote
newo

$ git remote -v
newo    https://github.com/birdandcliff/seturl.git (fetch)
newo    https://github.com/birdandcliff/seturl.git (push)

$ git remote get-url newo
https://github.com/birdandcliff/seturl.git

$ git remote show newo
* remote newo
  Fetch URL: https://github.com/birdandcliff/seturl.git
  Push  URL: https://github.com/birdandcliff/seturl.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

remote 的配置信息

参考

使用 git remote add <别名> url 后,会在 .git/config 文件中添加如下信息:

[remote "demo"]
    url = https://github.com/birdandcliff/gitdemo.git
    fetch = +refs/heads/*:refs/remotes/demo/*

fetch 的格式由一个可选的 + 号和紧随其后的 <src>:<dst> 组成。其中 <src> 代表远程仓库中的引用;<dst> 是那些远程引用在本地所对应的位置。 + 号告诉 Git 即使在不能快进的情况下也要(强制)更新引用。

因此,Git 会获取 refs/heads/ 下面的所有引用,并将它写入到本地的 refs/remotes/demo/ 中。

  1. 可以对 fetch 进行手动修改。如将 fetch 行修改如下:

    fetch = +refs/heads/master:refs/remotes/demo/master
    

    那么使用 git fetch 时,就只会拉取远程仓库的 master。

  2. 分支信息并不一定要存储在 demo 目录下。可以在该目录下任意指定子目录。如:

    [remote "demo"]
        url = https://github.com/birdandcliff/gitdemo.git
        fetch = +refs/heads/re:refs/remotes/demo/devlocal
        fetch = +refs/heads/tra:refs/remotes/demo/xx/tra
    

    远程的 tra 分支存储的路径就在 demo/xx 目录下,而不是直接位于 demo 目录下。

    引用 tra 远程分支时,也需要写成 demo/xx/tra,不能直接写成 demo/tra 形式。如:

    $git branch -u demo/xx/tra
    Branch dev set up to track remote branch tra from demo.
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,657评论 18 139
  • 1. GIT命令 git init在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个re...
    江边一蓑烟阅读 799评论 0 0
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,664评论 4 54
  • 龙: 7月30日那天,我看了庆八一阅兵式,沙场点兵,猎猎军旗红,我军将士锐可不挡,豪气冲云天!此情此景,不仅让我心...
    九月流云阅读 699评论 35 25
  • 早上匆匆忙忙地出了门,奔向北门桥去外婆家。车到了张家界市内,顺便麦当劳买了些吃的。真不应该买的,后悔死了!吃了不仅...
    椒花柏酒阅读 154评论 0 0