“向上游添加更改”是什么意思?
语境:
我们使用 Hibernate,而 Hibernate 是我们自己的,forked。为什么?.. 因为,首先,并不是所有的更改都可以轻松添加到上游。也就是说,您需要提交某种功能,社区完全没有必要平静地接受它。你需要它,没有其他人需要它。
“向上游添加更改”是什么意思?
语境:
我们使用 Hibernate,而 Hibernate 是我们自己的,forked。为什么?.. 因为,首先,并不是所有的更改都可以轻松添加到上游。也就是说,您需要提交某种功能,社区完全没有必要平静地接受它。你需要它,没有其他人需要它。
分叉过程本质上是在现有存储库 (A) 的基础上创建您自己的存储库 (B),以便对产品添加一些自己的更改。
所以 (B) 是分叉,而 (A) 是上游。
分叉的创建者可能与项目的创建者没有任何关系,并且通常可以对分叉进行更改,但不能对上游进行更改。在上游,他只能提供(当然,除非他是维护者之一,但稍后会详细介绍)。
上游支持由项目的维护者处理。他们的版本是“规范的”,他们接受的任何更改通常最终都会产生依赖于他们的分叉。从这个意义上说,他们是“上游”:他们接受的变化正在“流下”分叉**。由此得名。
通常,这些术语描述了两个存储库之间的某种关系。它不必是两个服务器存储库。当您拥有来自服务器的存储库的本地克隆时,这些条款也适用。服务器上的存储库位于上游,从某种意义上说,您拥有一个分支。
** ...但仅限于那些跟随上游的人。这并非总是如此。一些分叉是为了走另一条路而创建的,它们可能有选择地或根本不接收来自上游的更改。但是这样的分叉是少数。