如何在托管在Github上他人项目中修补代码

18

我克隆了某人在 GitHub 上托管的开源代码,并进行了一些更改以修复各种平台上的问题。我想将这些更改反馈到系统中。我该如何将其贡献到 GitHub,以便其他人也能受益?


3
由于明显的原因,你不能自己完成这项任务,至少不能在其他人的代码库中完成。你所能做的取决于项目本身。大多数较大的项目都会在文档中提供“如何贡献”的部分。你的项目有类似的内容吗? - user743382
1
可能是如何在GitHub上为别人的代码做贡献?的重复问题。 - Joe
3个回答

27

我想您希望创建Pull Request

  1. 将您的修复内容推送到GitHub上您的分支
  2. 访问原始项目的GitHub页面
  3. 点击Pull Requests,它在右上方的某个位置
  4. 点击新建 pull request
  5. 点击比较跨度分叉
  6. 选择您自己的分叉+分支
  7. 检查差异。确保它很干净。
  8. 创建pull request,并可能与维护者联系

更新

如果您还没有在GitHub上拥有您的分支,那么您必须首先创建:

  1. 转到GitHub上的项目页面
  2. 点击分叉,它在右上方的某个位置
  3. 将您的fork克隆到您的计算机上
  4. 进行更改并提交(您可以将其分成多个较小的提交,这实际上更好)
  5. 将本地分支推回GitHub
  6. 现在,您在GitHub上的分支已经具有您的更改,准备从中创建一个Pull Request,如上所述。

1

如果您是贡献者:

  1. 使用 git branch [branch_name] 创建自己的分支
  2. 在该分支的代码中进行更改
  3. 如果您添加了新文件,您需要使用 git add .(添加所有新文件)命令来通知GIT您的新文件。之后,GIT将开始跟踪新文件。
  4. 提交更改 git commit -am "Commit message"
  5. 使用 git push origin [branch_name] 推送更改

注意: 除非您是贡献者,否则不允许在公共存储库上更改主要分支(称为master)。

此后,管理员将检查您所做的更改,如果他批准了,它们将与 master 分支合并。

如果您不是贡献者:

按 @janos 建议创建一个拉取请求。

我不确定您是否正在寻找GIT教程,但这里有一个可以供您参考。 http://www.vogella.com/articles/Git/article.html


1
通常情况下,除非您已经获得了权限,否则您无法将更改推送到远程存储库。这适用于所有分支。此外,任何分支都可以发送拉取请求,而不仅仅是主分支。 - Frank Osterfeld

0
在 GitHub 上,您可以向其他人的项目发送拉取请求以修补代码。我已经开始了一个项目,帮助人们进行第一次 GitHub 拉取请求。您可以进行实践教程,在这里制作您的第一个 PR
工作流程很简单:
  • 在 GitHub 上 fork 该 repo。
  • 将 repo 克隆到本地机器。
  • 为更改创建分支并进行必要的更改。
  • 将更改推送到 GitHub 上的 fork 中 git push origin branch-name
  • 转到 GitHub 上的 fork,查看 比较和拉取请求 按钮。
  • 单击它并提供必要的详细信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接