提问人:mandark 提问时间:1/2/2015 最后编辑:mandark 更新时间:8/8/2016 访问量:1893
变基后手动合并的拉取请求在 Github 上不会显示为已合并
Pull requests merged manually after a rebase don't show as merged on Github
问:
为了保持线性历史记录,我使用以下方法来合并更改,而不是依赖 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 PR?
答:
1赞
onlythefinestwilldo
1/2/2015
#1
由于该功能是变基的,因此其提交历史记录完全被抵消。在这一点上,它基本上是一个新分支。
您可以强制推送变基功能分支,覆盖拉取请求(假设您是维护者并且您对 fork 具有写入权限)。
$ git push -f [feature] [remote] [feature]
GitHub 获取新主节点后,拉取请求将被关闭。
评论
0赞
mandark
1/4/2015
就像你说的,这需要对分叉的写入权限,这是一个不同的场景。此外,更改本地历史记录是可以的,但不建议更改公共历史记录,特别是当它可能影响另一个用户时,在这种情况下,该用户将是拉取请求的创建者。
3赞
mandark
6/26/2015
#2
正如 onlythefinestwilldo 正确指出的那样,一旦一个分支被重新定位,它就会包含一组不同的提交,这意味着原始拉取请求不会受到影响。
为了克服这个问题,我们改变了我们的流程:现在,在将更改合并到 master 时,我们不会对分支进行变基。如果无法合并更改,则会要求拉取请求的创建者为其分支变基并更新拉取请求。虽然不方便,但这是确保拉取请求在合并时自动关闭的唯一方法。
评论