为了账号安全,请及时绑定邮箱和手机立即绑定

“下游”和“上游”的定义

“下游”和“上游”的定义

Git
弑天下 2019-05-28 17:21:40
“下游”和“上游”的定义我已经开始玩Git并遇到过“上游”和“下游”这两个词。我之前见过这些,但从未完全理解它们。这些术语在SCM(软件配置管理工具)和源代码的上下文中意味着什么?
查看完整描述

3 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

在源代码控制方面,当您从存储库复制(克隆,签出等)时,您处于“ 下游 ”。信息流向“下游”给您。

当您进行更改时,您通常希望将它们发送回“ 上游 ”,以便它们进入该存储库,以便从同一来源拉出的每个人都在处理所有相同的更改。这主要是每个人如何协调工作而不是源控制技术要求的社会问题。您希望将更改纳入主项目,这样您就无法跟踪不同的开发线。

有时您会阅读有关提交“上游”更改的包或发布经理(人员,而不是工具)。这通常意味着他们必须调整原始来源,以便他们可以为他们的系统创建一个包。他们不想继续进行这些更改,因此如果他们将它们“上游”发送到原始源,他们就不必在下一个版本中处理相同的问题。


查看完整回答
反对 回复 2019-05-28
?
暮色呼如

TA贡献1853条经验 获得超9个赞

当您在git tag手册页中阅读时:

git的一个重要方面是它是分布式的,并且分布很大意味着系统中没有固有的“上游”或“下游”。

,这仅仅意味着没有绝对的上游回购或下游回购。
这些概念在两个回购之间总是相对的,取决于数据的流动方式:

如果“yourRepo”已将“otherRepo”声明为远程,则

  • 您正在从上游拉 “otherRepo”(“otherRepo”是“上游你”,你是“下游用于 otherRepo”)。

  • 你正推向上游(“otherRepo”仍然是“上游”,现在信息可以回到上游)。

注意“从”和“为”:你不仅仅是“下游”,你是“下游/为 ”,因此相对方面。


DVCS(分布式版本控制系统)扭曲是:你不知道下游实际上是什么,除了你自己的repo相对于你声明的远程仓库。

  • 你知道上游是什么(你正在拉动或推动的回购)

  • 你不知道下游是由什么组成的(另一个回购拉动或推动你的回购)。

基本上:

在“ 数据流 ”方面,您的仓库位于来自上游回购(“拉出”)并返回(相同或其他)上游回购(“推送到”)的流的底部(“下游”) )。


您可以在git-rebase手册页中看到“从上游重新恢复”段落中的插图:

这意味着你正在从一个发生rebase的“上游”仓库中撤出,而你(“下游”仓库)仍然存在后果(许多重复提交,因为上游的分支重新创建了同一分支的提交你在当地)。

这是不好的,因为对于一个“上游”回购,可能有许多下游回购(即从上游回收利用重新分支的回购),所有这些都有可能处理重复提交。

同样,对于“数据流”类比,在DVCS中,一个坏命令“上游”可以在下游具有“ 波纹效应 ”。


注意:这不仅限于数据。
它也适用于参数,因为git命令(如“瓷器”命令)经常在内部调用其他git命令(“plumbing”命令)。见rev-parse手册页

许多git ceramicish命令混合使用标志(即以短划线开头的参数-)和参数,这些参数用于git rev-list内部使用的基础命令,以及它们在下游使用的其他命令的标志和参数git rev-list。此命令用于区分它们。


查看完整回答
反对 回复 2019-05-28
  • 3 回答
  • 0 关注
  • 3725 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信