为了保持线性历史记录,我使用以下方法合并更改,而不是依赖于github的合并功能:
git checkout -b feature_x user/feature_x
git rebase master
git checkout master
git merge --no-ff feature_x
git push origin master # On Github: PR gets merged and closed
git branch -D feature_x
以上工作完全正常,但在我必须手动解决冲突的情况下,PR不会自动显示为合并在Github上,我必须手动关闭PR。
是否有更好的方法来合并自动显示Github PRs合并和关闭的拉取请求?
答案 0 :(得分:1)
正如onlythefinestwilldo正确指出的那样,一旦分支被重新命名,它就包含一组不同的提交,这意味着原始的拉取请求不会受到影响。
为了解决这个问题,我们改变了我们的流程:现在,我们在将更改合并到主时不会重新分支。如果无法合并更改,则会要求拉取请求的创建者重新绑定其分支并更新拉取请求。虽然不方便,但这是确保合并时拉取请求自动关闭的唯一方法。
答案 1 :(得分:0)
由于该功能已重新定位,因此其提交历史记录完全抵消。那时它基本上是一个新的分支。
您可以强制推送重新定义的功能分支,覆盖拉取请求(假设您是维护者,并且您具有对分支的写入权限)。
$ git push -f [feature] [remote] [feature]
一旦GitHub获得新的主人,拉取请求将被关闭。