2009-12-08 115 views
13

所以我在github上克隆了一个项目并修复了一个补丁。因为这是我第一次在git中工作,试图找出把它放到网上的最佳方式。用git贡献

在github上检出我自己的(克隆)存储库时,只有一个分支:。我创建了一个分支,myfix,它现在拥有一个提交,这是该错误的修复。

  • 现在我应该一切到我的github克隆项目?我认为这会在我的github项目上创建包含该单一修复提交的分支myfix
  • 我应该合并myfix分支,删除myfix然后一切吗?

在网上搜索,似乎是共同的/好的做法是离开不变,使用纯粹是为了从真正/原公益项目库拉(也就是别人所接受的捐款和这样)。但也有人提出其他策略:

  • 创建上游分支,把你的清洁和准备贡献有让其他人可以找到他们很容易,不与我的其他不全/实验分支机构混合起来(我不知道为什么这些会如果他们不完整,甚至可以上网)。
  • 创建一个下游分支拉动此处的其他更改用于脱机合并。

如果我遵循上面的两个(虽然目前感觉有点矫枉过正)主分支的目的是什么?

Git可以做任何上述的组合(或全部)。这让我对如何轻松向别人展示我的作品感到困惑。有没有这样的“常用”工作流程?还是每个人都为自己和你发布特定分支(多数民众赞成推动)在问题跟踪器的固定错误的特定修订?

回答

7

当您克隆存储库时,Git会自动创建remote tracking branches,它可以执行您对主站分支所描述的操作。您可以列出这些远程跟踪分支有:

git branch -r 

由于跟踪上游资源库为你已经完成,你通常会使用你的分行主线变更项目。下面是我会你的特殊情况做:

  • 合并的myfix分支到您的克隆。 (在“主题分支”中完成此操作是很好的做法。)
  • 主人分支到Github。 (目前还不清楚你是否分叉了原始仓库,或者只是从中克隆了它,你需要分叉原始仓库,创建自己的副本,以便下一步工作。)
  • 发送Github pull request给所有者你分叉的仓库。
+0

只是这样做了,除了我在合并重名的“主题分支”之前推回到主人。拉请求来自我推送的分支myfix。 – Mizipzor 2009-12-08 23:05:29

+0

这很好,分支名称没有任何意义。一个提交只是从树的一个状态到另一个状态的改变,不管它有多少个名字。 – 2009-12-08 23:09:24

5

Github上,您可以发送pull requests到其他仓库的业主,并要求说:在哪里可以找到你的有趣的变化。这意味着您不必将所有更改保留在特定的知名分支中。

因此很容易在其他人会增加你的你的补丁被录取的机会,所以保持一个干净的主作为一个共同的参考点,并在分支机构变更关闭主的。保持分支机构的狭隘性:不要在单个分支中堆放13个新功能,而要在干净利落的地方将它们分开。

+2

因此,树枝被创建,推动,被其他人拉动,合并然后移除的情况并不罕见? – Mizipzor 2009-12-08 23:04:12

+2

正确。在将主题分支合并到项目主人后,保留它几乎没有什么好处。 – 2009-12-09 18:34:09