我已经开始玩git,并遇到了"上游"和"下游"术语。我以前见过这些,但从未完全理解它们。这些术语在SCM的背景下意味着什么(软件配置管理工具)和源代码?

答案

在源控件方面,从存储库复制(克隆,结帐等)时,您是下游。信息向您流动"下游"。

当您进行更改时,通常需要将它们发送回"上游",以使其成为该存储库,以便从同一源中拉出的每个人都可以使用所有相同的更改。这主要是一个社会问题,每个人如何协调他们的工作,而不是源控制的技术要求。您想将更改进入主要项目,因此您不会跟踪开发的不同线条。

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

来自: stackoverflow.com