栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Git-什么是“ Refspec”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Git-什么是“ Refspec”

refspec告诉git如何将引用从远程映射到本地仓库。

您列出的值是

+refs/headshead:refs/remotes/origin/merge-requests/*
; 所以让我们分解一下。

您有两个模式,它们之间有一个间隔;这只是意味着您要给出多个规则。(专业版git书将其称为两个refspecs;从技术上讲,这可能更正确。但是,您几乎总是可以列出多个refspecs,因此在日常生活中,这可能几乎没有什么区别。)

那么,第一种模式

+refs/heads/*:refs/remotes/origin/*
包括三个部分:

  1. +
    方法适用无故障的规则,即使这样做会在非快进方式移动的目标参考。我会回到那。
  2. :
    (但
    +
    如果有的话之后)之前的部分是“源”模式。即
    refs/heads/*
    ,表示此规则适用于
    refs/heads
    (含义,分支)下的任何远程引用。
  3. 后面的部分
    :
    是“目标”模式。那是
    refs/remotes/origin/*

因此,如果原点有一个分支

master
表示为
refs/heads/master
,这将创建一个远程分支引用
origin/master
表示为
refs/remotes/origin/master
。对于任何分支名称(
*
)依此类推。

回到那个

+
…假设起源

A --- B <--(master)

您获取并应用该refspec即可

A --- B <--(origin/master)

(如果您应用了典型的跟踪规则并且做了,

pull
您也已经
master
指出了
B
。)

A --- B <--(origin/master)(master)

现在,某些事情发生在遥控器上。也许有人做了一个

reset
删除
B
,然后提交
C
,然后强行推动的操作。所以遥控器说

A --- C <--(master)

当您获取时,您会得到

A --- B   C

和git必须决定是否允许

origin/master
B
到的移动
C
。默认情况下,这是不允许的,因为它不是一个快进(它会告诉您它拒绝了该引用的请求),但是因为规则以
+
它开头而将接受它。

A --- B <--(master)   C <--(origin/master)

(在这种情况下,拉动将导致合并提交。)

第二种模式是相似的,但是对于

merge-requests
引用(我认为与您的服务器对PR的实现有关;我不熟悉)。

有关refspec的更多信息:https : //git-scm.com/book/en/v2/Git-Internals-The-Refspec



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387529.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号