Von*_*onC 911
在GitHub上下文中, Fork不会扩展Git.
它只允许在服务器端克隆.
在本地工作站上克隆GitHub存储库时,除非明确声明为"贡献者",否则无法返回上游存储库.那是因为你的克隆是该项目的一个单独的实例.如果您想为项目做出贡献,可以通过以下方式使用分叉来执行此操作:
另请参阅 " Collaborative GitHub Workflow ".
如果要保留与原始存储库(也称为上游)的链接,则需要添加引用该原始存储库的远程数据库.
请参阅" GitHub上的源和上游有什么区别? "

使用Git 2.20(2018年第四季度)以及更多,使用delta岛更有效率.
mea*_*gar 134
我一直听到有人说他们用git代码.Git"fork"听起来像git"clone",加上一些(无意义的)放弃未来合并的心理意愿.git中没有fork命令,对吧?
"分叉"是一个概念,而不是任何版本控制系统特别支持的命令.
最简单的分叉是分支的同义词.每次创建分支时,无论您的VCS如何,您都"分叉"了.这些叉子通常很容易合并在一起.
你正在谈论的那种分支,一个单独的一方获取代码的完整副本并走开,必然发生在VCS之类的集中式系统中,如Subversion.像Git这样的分布式VCS可以更好地支持分支整个代码库并有效地启动新项目.
Git(不是GitHub)本身支持以几种方式"分叉"整个回购(即克隆它):
origin会为您创建一个名为的远程调用origin等效项Git将更改贡献给fork的源代码就像要求原始项目中的某些人从您那里获取,或者请求写访问权来自行推送更改一样.这是GitHub更容易和标准化的部分.
对Github的任何焦虑都会向这个方向扩展git?或者任何关于git吸收功能的谣言?
没有焦虑,因为你的假设是错误的.GitHub通过一个漂亮的GUI和一个标准化的发布拉取请求的方式"扩展"了Git的分叉功能,但它没有向Git 添加功能.完全复制分叉的概念在基础层面上直接进入分布式版本控制.您可以随时放弃GitHub并继续推送/拉动您"分叉"的项目.
ssa*_*ota 78
是的,fork是一个克隆.它的出现是因为,未经他们的许可,你不能将他人的副本推送给他人.他们为你制作了一份副本(fork),你也有写权限.
将来,如果实际的所有者或其他用户拥有类似您的更改的分支,他们可以将其拉回到自己的存储库中.或者,您可以向他们发送"拉动请求".
Dae*_*yth 37
在这种情况下,"Fork"意味着"复制他们的代码,以便我可以添加自己的修改".没有什么可说的了.每个克隆本质上都是一个fork,它由原来决定是否从fork中提取更改.
Sam*_*son 26
克隆涉及将git存储库的副本制作到本地计算机,而分叉则将存储库克隆到另一个存储库.克隆仅供个人使用(尽管可能会出现未来的合并),但是在分叉的情况下,您正在复制并打开一个新的可能的项目路径
Dan*_*hen 10
我认为fork是其他存储库的副本,但随着您的帐户修改.例如,如果您在本地直接克隆其他存储库,则远程对象源仍在使用您从中克隆的帐户.您无法提交和贡献您的代码.它只是一个纯粹的代码副本.否则,如果您分叉存储库,它将使用您的github帐户中的帐户设置更新来克隆存储库.然后在您的帐户上下文中克隆回购,您可以提交您的代码.
ali*_*sav 10
当您决定为某个项目做出贡献时,就会完成分叉.您可以复制整个项目及其历史记录日志.此副本完全在您的存储库中完成,一旦您进行了这些更改,您就会发出拉取请求.现在它可以接受您的拉取请求并将更改合并到原始代码中.
Git clone是一个实际的命令,允许用户获取源的副本.git clone [URL]这应该在您自己的本地存储库中创建[URL]的副本.
除了克隆是从服务器到你的机器并且分叉在服务器本身上复制这一事实之外,一个重要的区别是当我们克隆时,我们实际上得到了所有的分支,标签等.
但是当我们分叉时,我们实际上只获取主分支中的当前文件,除此之外.这意味着我们没有得到其他分支机构等.
因此,如果您必须将某些内容合并回原始存储库,那么它就是一个存储库间合并,肯定需要更高的权限.
Fork不是Git中的命令; 它只是GitHub实现的一个概念.记住Git被设计为在点对点环境中工作,而不需要与任何主副本同步.服务器只是另一个对等体,但我们将其视为主副本.
小智 6
关于什么是“叉子”,这里存在误解。实际上,派生不过是一组按用户分支。当您推入叉子时,实际上您确实会推入原始存储库,因为那是唯一的存储库。
您可以通过将其推入一个叉子,注意提交,然后转到原始存储库并使用提交ID来进行尝试,您将看到该提交位于原始存储库中。
这很有道理,但远非显而易见(我是最近才偶然发现的)。
当John分支存储库SuperProject时,实际上发生的事情是使用“ John.master”,“ John.new_gui_project”等名称复制源存储库中的所有分支。
GitHub“隐藏”“ John”。从我们这里得到的错觉给我们一种错觉,即我们在GitHub上拥有自己的存储库“副本”,但我们不需要,甚至也不需要。
因此,我的叉子的分支“ master”实际上被命名为“ Korporal.master”,但是GitHub UI从未显示此信息,只向我显示了“ master”。
无论如何,根据我最近所做的事情,这几乎是我认为可以进行的事情,当您仔细考虑时,这是非常好的设计。
因此,我认为Microsoft在其Visual Studio Team Services产品中实现Git分支将非常容易。
| 归档时间: |
|
| 查看次数: |
335829 次 |
| 最近记录: |