我希望实现git-flow中所述的相同工作流,但使用GitHub。然而问题似乎是当与GitHub合并时(合并,压缩或rebase),新的提交哈希被添加到master。这导致了永久性的“发展”。分支开始思考它在主人身后的1次提交。
有没有办法在github上复制这个工作流程?或者我应该放弃并使用更简单的github-flow
答案 0 :(得分:0)
简短回答:不要使用Pull Requests合并为master;而是使用" fast-forward"在本地执行合并,然后推送分支:
git checkout master
git merge --ff-only develop
git push
警告:仅当develop
每次提交master
时才有效。
长答案:GitHub上的合并通常是通过批准拉取请求来实现的;有人创建一个新的功能分支,通过网站打开一个拉取请求,然后在拉取请求被批准时进行合并。批准在新分支上创建合并提交。您想避免合并提交。但据我所知,这是Github的默认行为,不能被覆盖。解决这个问题的唯一方法是使用"快进"来执行合并。使用您选择的工具在本地策略,然后将更改推送到GitHub仓库。
如果要合并的分支是主分支的直接后代,则只能快进。如果master
具有develop
没有的任何提交,则您无法快进,并且将创建合并提交。如果您正在使用git-flow的技术进行分支" hotfix"来自master
的分支,您可能会遇到此问题。
这样做有好处吗?要看。你最终得到了一个更精简的#34;存储库提交较少,但您可能会错过Pull Requests提供的好处 - 更好地了解代码更改(尽管在实践中,代码审查通常在合并功能分支时发生。拉请求从develop
合并到{ {1}}可能感到多余。)
答案 1 :(得分:0)
我建议你放弃并开始使用你的“platflorm”流程。我的意思是github(作为gitlab,beanstalk或bitbucket)提出自己的流程。我建议你开始使用master作为开发分支(下一个版本)并将所有旧的稳定版本保留在另一个分支中。例如:
分支大师(5.4开发)
分支5.3(当前版本)
分支4.9(旧版本的LTS版本)
始终修复发布分支并在master中添加新功能。如果主人保持复古兼容性只是准备下一个小调如果主人破坏了某些东西,......增加主要版本。