fork的代码怎么更新 - github提交pull request



Forking和克隆在GitHub上有什么区别? (6)

GitHub上另一个奇怪的区别是,只有将更改拉入原始回购库时,才会将活动日志中的更改计入活动日志中。 更重要的是,要将叉子变成适当的克隆,显然,您必须联系Github支持。

为什么我的贡献没有显示出来

提交是在一个分支中完成的

在分叉中作出的提交不会计入您的贡献。 要使它们成为数字,您必须执行以下操作之一:

打开拉取请求以将您的更改合并到父存储库中。 要分离fork并将其转换为GitHub上的独立存储库,请联系GitHub支持 。 如果叉子有自己的叉子,让支持人员知道叉子是否应该随存储库一起移动到新的网络中或保留在当前网络中。 有关更多信息,请参阅“ 关于叉子”

我想知道做一个项目的分叉和做一个clone之间的区别。

我只能通过GitHub发送拉请求,如果我分叉了一个项目?


Answer #1

克隆是一个存储库的两个(可能不同)版本之间进行适当的重复和分离的地方。 当修改一个回购时,必须使用推送命令将新内容主动复制到其他回购。 其他回购中的更改被提取。

当您在服务器上分叉repo时,不需要重复内容,因为这两个repos将使用来自同一服务器的相同[固定对象]内容。 '诀窍'在于管理不同的用户观点,以便每个用户都相信他们拥有完整的回购副本。 在叉子之间推送和提取只是更新用户的指针。

在较低的层面上,git在内部执行相同的操作。 如果你有三个不同的文件,每个文件都包含Hello World ,那么git只是'分叉'它的Hello World blob的单个副本,并根据需要在三个地方分别提供它。

分叉服务器的能力意味着Github的大容量存储容量并不是那么大,因为每个机构都共享一个底层回购。


Answer #2

如果你做了提问者暗示的内容(忘记了分叉,只是在本地克隆了一个回购协议,进行了更改并且现在需要发出拉取请求),那么您可以回到正轨:

  1. 叉你想要发送拉请求的回购
  2. 将您的本地更改推送到您的远程
  3. 发出拉请求

Answer #3

当你说你在分拣一个仓库时,你基本上是在你的GitHub ID下创建一个仓库的副本。 这里需要注意的是,对原始存储库所做的任何更改都会反映回您的分叉存储库(您需要获取并重新绑定)。 但是,如果您对分叉存储库进行了任何更改,则必须显式创建对原始存储库的拉取请求。 如果您的拉取请求得到原始存储库管理员的批准,那么您的更改将与现有的原始代码一起提交/合并。 在此之前,您的更改只会反映在您分叉的副本中。

简而言之:

叉和拉模型允许任何人分叉现有的存储库,并将更改推送到他们的个人分支,而无需授予源存储库的访问权限。 必须由项目维护人员将这些更改拖入源代码库。

请注意,分叉之后,您可以在本地机器上克隆存储库(名称中的一个)。 对其进行更改并将其推送到您的分叉存储库。 但是,为了反映您在原始存储库中所做的更改,您的拉取请求必须获得批准。

其他有趣的话题 -

git叉子是否是git克隆?

我如何更新GitHub分叉库?


Answer #4

虽然@ AniketThakur的回答非常好。 还没有人回答以下问题。

我只能通过GitHub发送拉请求,如果我分叉了一个项目?

不可以。如果您是存储库的贡献者,则可以:创建本地克隆。 建立一个本地分支。 将提交添加到该分支。 将本地分支推回到github(在这个过程中创建一个远程分支)。 提出请求将该分支合并到主分支(或任何你喜欢的分支)的请求。


Answer #5
  • 分叉项目在您的在线存储库(回购)。
  • 克隆的项目在您的本地机器上(我通常在分销回购后克隆)。

您可以提交您的在线回购协议(或者在本地回购协议中提交,然后推送到您的在线回购协议),然后发送拉取请求。

项目经理可以接受它以在他的主要在线版本中获得您的更改。





github