Git工作流程:向上游提交拉取请求并同时使用提交

时间:2014-06-12 22:53:02

标签: git github version-control pull-request

我刚刚开始与Git合作,而我正试图找出维护分叉存储库的最佳工作流程,并通过Github上的pull请求向上游提交更改。

我已经阅读了一段时间,但还没有找到最佳做法。让我们使用这个具体的例子,但这是一个通用的工作流程问题。

Git workflow: forking a project and maintaing a local modified copy, but keep up to date的建议相似,我在3.0-stable分支之外创建了一个magiclabs / alchemy_cms(上游)的分支,然后创建另一个基于3.0-stable的分支来保存所有自定义变化。让我们称之为分支自定义。

现在的问题是,当我想要进行新的更改并将其提交回上游magiclabs / alchemy_cms repo时,最好的方法是什么,以便我可以创建一个拉取请求以合并到master AND也立即开始在自定义分支中使用该提交。 PR可能不会立即合并,可能需要更改,或者可能不被接受。

我一直在做的是在forked repo中创建一个master的功能分支,以获得一个干净的pull请求来提交上游。提交拉取请求后,我git cherry-pick承诺将其放入自定义分支。

这似乎是不洁净的,因为它会创建一个重复的提交哈希,而且我不确定在接受拉取请求时会发生什么。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

  

我一直在做的[为上游做出贡献]是在forked repo中创建一个master的功能分支,以获得向上游提交的干净拉取请求。一旦我提交了pull请求,我就会把它提交到自定义分支中。

这是执行此操作的正确方法。我在" custom"上管理项目。这样分支。当你定期合并上游分支时,它会为同一个操作提交2个提交......没什么大不了的。

如果您的PR必须重新设计并且不再匹配,那么您在合并时会发生冲突,但这是在项目负责人未经批准的方向上向前航行的不可避免的成本。