这里对“分叉”是什么存在误解。一个分叉实际上只不过是一组每个用户的分支。当您推送到分叉时,您实际上确实推送到了原始存储库,因为那是唯一的存储库。
您可以通过推送到一个分支来尝试这一点,注意提交,然后转到原始存储库并使用提交 ID,您会看到提交“在”原始存储库中。
这很有意义,但远非显而易见(我最近才偶然发现这一点)。
当 John fork 存储库 SuperProject 时,似乎实际发生的是源存储库中的所有分支都以“John.master”、“John.new_gui_project”等名称复制。
GitHub“隐藏”了“约翰”。来自我们并给我们一种错觉,我们在 GitHub 上拥有自己的存储库“副本”,但我们不需要,甚至不需要。
所以我的 fork 分支“master”实际上被命名为“Korporal.master”,但是 GitHub UI 从来没有显示这个,只显示“master”。
无论如何,这几乎就是我认为基于我最近一直在做的事情的引擎盖下发生的事情,当你思考它时,这是非常好的设计。
出于这个原因,我认为微软很容易在他们的 Visual Studio Team Services 产品中实现 Git 分支。