2011-03-22 88 views

回答

12

(我喜欢的git早午餐的想法 - git的用户在周日见面,为大量的油炸食品;))

在github上派生一个项目,使在自己的仓库中修改的想法是该项目的所有者不需要信任你或让你推送到他们的存储库。如果您希望他们考虑合并代码库中的代码,那么您可以将它们发送给pull request。 GitHub有一个很好的pull请求系统,上游开发者可以在这里查看和评论你的贡献。

在一组值得信赖的开发人员中,每个人都可以推送到一个共享存储库,通常会将您开发的每个新功能都推送为新的主题分支,并要求其他人检查您的工作并考虑合并。

有关git的许多优点之一是它并不特别关心某个特定分支提示所在的存储库 - 该提交将始终具有相同的SHA1sum,因此您可以随意按下并拉动它。真的,如果它在GitHub的分支或推送到共享存储库或任何其他...

+0

谢谢。这解释了很多(但是直到现在我还不明白,为什么我不能早早地做这个事情) – uhbif19 2011-03-23 07:49:29

+1

@ uhbif19:像GitHub这样的站点可能有一个安全模型,你可以指定某些用户只能使用特定名称推送到分支机构,但是,我认为这会让实施人员感到头痛,并且很难为存储库所有者配置 - GitHub模型相当优雅,因为它很容易理解,但仍然(a)允许任何人都可以通过分手和提出pull请求来做出贡献,并且(b)允许值得信赖的合作者直接推送到特定的存储库 – 2011-03-23 07:56:09

+2

@ uhbif19:顺便说一下,我认为这只是你的文章中的一个错字,但是由于你在该评论中重复了它,或许应该指出他们是“分支”而不是“早午餐” – 2011-03-23 08:16:47

0

github fork意味着你有一个github repo,所以你可以推动改变到这个。这意味着您所做的更改可以在github上看到,但原始所有者不需要包含它们。

创建一个fork为您提供了一个可写入版本的存储库。

分支在这方面与叉子完全不同。一个叉子可以有很多分支。

9

要解释你的问题“为什么我不能只是推我的分支到他们的回购? “,考虑到即使github可以让你做到这一点,而不会潜在地破坏所有人的整个回购,大多数维护者仍然不会很高兴他们的清理回购变成了数十个或数百个分支的倾销地。

看到这些分支机构的其他贡献者会认为上游开发人员正在为他们工作,即使他们真的被第三方遗弃了一半已完成的贡献。

有趣的是,您的工作流程无论如何都是完全相同的,只需在上游回购站点上点击“分支”按钮即可。

比较:

  1. 混帐混帐克隆:// github上。COM /人/ someproject
  2. git的结帐-b mycoolfeature
  3. 砍砍砍
  4. 混帐推起源mycoolfeature
  5. 提交拉请求mycoolfeature分支

VS

  1. 点击“ fork“在github.com/somebody/someproject
  2. git clone git://github.c OM /你/ someproject
  3. git的结帐-b mycoolfeature
  4. 砍砍砍
  5. 混帐推起源mycoolfeature
  6. 提交mycoolfeature分支拉请求

真的是完全没有开销你创造一个分叉。

如果你已经拥有上游回购的克隆,而你担心你将不得不作出一个新的克隆和浪费一些时间,试试这个工作流程:

  1. 点击叉
  2. CD someproject(您现有的克隆)
  3. git的远程添加myfork的git://github.com/you/someproject
  4. git的结帐-b mycoolfeature
  5. 砍砍砍
  6. 混帐推myfork mycoolfeature
  7. 提交拉请求mycoolfeature分支

希望这有助于!