使用Github在Git中提交多个拉取请求(常规流程)

Ian*_*lor 6 git workflow fork github

无论如何我都不是专家,所以我想确保以下流程是好的:

  1. 找一个我想贡献的回购.(原始回购)
  2. 在github上分叉原始回购.(我的叉子)
  3. 在我正在进行的任何项目之外,将我的叉子克隆到我的机器上.(孤立的克隆)
  4. 包括我的fork作为我想要使用它的项目的子模块.(子模块克隆)
  5. 隔离的克隆上创建一个功能分支,并添加一些东西.
  6. 创建另一个功能分支和其他不相关的东西.
  7. 原始仓库作为远程添加到我的隔离克隆.
  8. 重新启动原始回购.
  9. 将两个功能分支推入并拉入我隔离的克隆主服务器.
  10. 从我项目中的子模块克隆中拉出来.
  11. 将拉取请求提交到隔离克隆中每个功能分支的原始仓库.
  12. 拉请求被接受.
  13. 重新启动我的fork的主分支,以反映我的更改的新主人.

那里有什么错误吗?

然后,我应该如何处理本地计算机上的功能分支?或许将它们重新定位给我当地的大师?删除它们(是不是很糟糕?)?

如果他们不接受我的请求,我仍然希望将它们合并到我的本地主人.这会搞砸吗?

我试图弄清楚允许我提交基于特征的请求的流程,但是也可以在我的项目中使用我的更改而不管他们是否接受,并且在他们接受/拒绝它们之后直接使用我的本地副本.

很多阅读,但感谢您的帮助!

编辑:发现这个,相关文章后一天.不回答我的问题的复杂性,但仍然有用:http://codeigniter.com/news/contribution_guide#When:13:36:15Z

Von*_*onC 4

子模块部分使事情变得有点复杂,但除此之外:

  • 9:拉?您会将两个功能分支推送到您的分叉(“隔离克隆”),而不是拉动它们。这会将这些提交保存在您的远程存储库上。
    实际上,对于拉取请求,您应该推送一个包含您想要提议的所有提交的分支。请参阅下一点。
  • 11:提交拉取请求:拉取请求背后的想法是为要包含的原始项目提出快进合并。
    因此,当您需要对要包含在分支顶部的拉取请求中的提交进行变基(例如master)时,原始存储库将必须使用您的提交进行更新。为此,建议:
    • 首先从原始存储库中提取(以确保master是最新的),
    • 将您的功能分支重新设置为一个新分支mastermaster此处再次是一个示例)(并测试最初在其自己的分支中开发的两个新功能是否可以协同工作)
    • 将新分支推到你的分支上
    • 提议将该新分支的提交作为拉取请求master

正如koffie评论的,如果您是唯一在该功能分支上工作的人,则可以进行变基(然后可以进行变基)。push --force

如果您想回馈项目,则不应直接修改您将贡献的分支的提交历史记录:如果您想向master原始存储库发出拉取请求,则不应将任何内容推送到master您的分叉(除了来自原始存储库的拉取的提交)
您应该始终在专用分支中工作。