GitLab/GitHub:为什么我的叉子*不需要*是最新的?
GitLab/GitHub: Why doesn't my fork *need* to be up-to-date?
明确一点:我不是在问如何让我的叉子保持最新。我在问一个非常不同的问题,答案似乎与GitLab 或 Github.
我很好奇为什么我的叉子不需要保持最新?我已经分叉了一个项目,并且我有一个带有两个遥控器的项目的本地克隆(“thetango”,我的分叉,和“upstream”,主项目)。我注意到我真的不需要在 GitLab 或 GitHub.
上更新我的 fork
我原以为当我推动创建 PR (GitHub) 或 MR (GitLab) 时,我收到的第一个错误是我的 fork 已过时,需要快进。这从来没有发生过,这让我很困惑。
GitLab 和 Github 实施了什么 git 魔法,这样我的叉子就不需要更新了?我是不是误解了什么是叉子?
当您在存储库的分支和主存储库中的分支之间创建拉取请求时,您实际上是在提议在存储库中的给定分支与主存储库中的给定分支之间进行合并。在那种情况下唯一重要的分支是那两个。
您的复刻中可能有其他分支,例如默认分支和包含您正在做的其他工作的分支,但除非您正在对其中之一进行拉取请求,否则他们领先或落后多远是否来自主存储库中的相应分支是无关紧要的。
现在,如果您从中创建拉取请求的分支远远落后于您要在主存储库中合并到的分支,那么合并冲突的可能性就会增加。因此,如果您要创建拉取请求,最好让您的本地存储库与主存储库保持同步,这样当您推送该分支以进行 PR 时,您推送的分支不会过时。
如果您正在进行独立开发,您可能会选择让分支的主分支保持最新的一个原因是。例如,Windows 的 Git 包含许多尚未进入主线 Git 的 Windows 特定补丁,因此他们的存储库保持最新,因为它本质上是一个完整的独立开发线。
明确一点:我不是在问如何让我的叉子保持最新。我在问一个非常不同的问题,答案似乎与GitLab 或 Github.
我很好奇为什么我的叉子不需要保持最新?我已经分叉了一个项目,并且我有一个带有两个遥控器的项目的本地克隆(“thetango”,我的分叉,和“upstream”,主项目)。我注意到我真的不需要在 GitLab 或 GitHub.
上更新我的 fork我原以为当我推动创建 PR (GitHub) 或 MR (GitLab) 时,我收到的第一个错误是我的 fork 已过时,需要快进。这从来没有发生过,这让我很困惑。
GitLab 和 Github 实施了什么 git 魔法,这样我的叉子就不需要更新了?我是不是误解了什么是叉子?
当您在存储库的分支和主存储库中的分支之间创建拉取请求时,您实际上是在提议在存储库中的给定分支与主存储库中的给定分支之间进行合并。在那种情况下唯一重要的分支是那两个。
您的复刻中可能有其他分支,例如默认分支和包含您正在做的其他工作的分支,但除非您正在对其中之一进行拉取请求,否则他们领先或落后多远是否来自主存储库中的相应分支是无关紧要的。
现在,如果您从中创建拉取请求的分支远远落后于您要在主存储库中合并到的分支,那么合并冲突的可能性就会增加。因此,如果您要创建拉取请求,最好让您的本地存储库与主存储库保持同步,这样当您推送该分支以进行 PR 时,您推送的分支不会过时。
如果您正在进行独立开发,您可能会选择让分支的主分支保持最新的一个原因是。例如,Windows 的 Git 包含许多尚未进入主线 Git 的 Windows 特定补丁,因此他们的存储库保持最新,因为它本质上是一个完整的独立开发线。