在rebase不显示为合并在Github上之后手动合并拉取请求

时间:2015-01-02 10:03:19

标签: git github merge command-line-interface rebase

为了保持线性历史记录,我使用以下方法合并更改,而不是依赖于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合并和关闭的拉取请求?

2 个答案:

答案 0 :(得分:1)

正如onlythefinestwilldo正确指出的那样,一旦分支被重新命名,它就包含一组不同的提交,这意味着原始的拉取请求不会受到影响。

为了解决这个问题,我们改变了我们的流程:现在,我们在将更改合并到主时不会重新分支。如果无法合并更改,则会要求拉取请求的创建者重新绑定其分支并更新拉取请求。虽然不方便,但这是确保合并时拉取请求自动关闭的唯一方法。

答案 1 :(得分:0)

由于该功能已重新定位,因此其提交历史记录完全抵消。那时它基本上是一个新的分支。

您可以强制推送重新定义的功能分支,覆盖拉取请求(假设您是维护者,并且您具有对分支的写入权限)。

$ git push -f [feature] [remote] [feature]

一旦GitHub获得新的主人,拉取请求将被关闭。