首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >默认的"git push“的"refspec”集

默认的"git push“的"refspec”集
EN

Stack Overflow用户
提问于 2016-04-16 16:28:00
回答 1查看 1.3K关注 0票数 2

在此之前,我认为git fetchgit push$GIT_DIR/config的影响是一样的,因为这两者都是用于repository engagements的命令,但是当我们为当前存储库添加一个存储库作为remote repository时,Git会在config中为git fetch创建一个默认的refspec集合,例如:

代码语言:javascript
复制
fetch = +refs/heads/*:refs/remotes/remote_repository/*

为什么对git推入配置文件的默认refspec集不做相同的操作?

我猜差异是由命令的default目的引起的:

  • fetch的默认用途是用于downloading all objects and refs from another repository
  • push的默认用途是updating specific remote refs along with associated objects

但我对我的猜测不太确定。是真的吗?

EN

回答 1

Stack Overflow用户

发布于 2016-04-16 21:18:01

git push的工作方式有点不同。

可以设置push.default参数来控制它。

这里是gitv2.0发行说明,它解释了git对待push (简单还是匹配)的方式的变化。在gitv2.0中对此进行了更新,以修复默认的git push行为。

在使用gitv2.0之前,当您执行git push时,它会推送所有已更改的分支(、all ,而不仅仅是当前分支)。

Git v2.0发行说明 后向兼容性注释 当matching没有说要推什么时,到目前为止,我们已经使用了传统的git push [$there]语义(只要在那里已经有同名的分支,那么所有的分支都被发送到远程)。在Git2.0中,默认的是simple语义,它推动:

  • 只有当前分支具有相同的名称,并且只有当当前分支设置为与该远程分支集成时,如果要将其推送到与从其获取的分支相同的远程;或
  • 只有当前分支的名称相同的分支,如果您要推送到一个远程,而这不是您通常从哪里提取。

您可以使用配置变量push.default来更改此设置。例如,如果您是一个想继续使用matching语义的老计时器,可以将变量设置为matching。阅读文档以了解其他可能性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36666709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档