我的问题
我做类似这样的事情:
git clone
git checkout -b new_feature
< work and commit >
git rebase master
< work and commit >
< finish working >
git rebase master
git push origin new_feature
< I create pull request via bitbucket's web interface >
审核变更的人正在做什么:
git pull
git checkout master
git merge --squash new_feature
git push origin master
我希望这个操作能够将拉取请求标记为已接受,但实际上并没有,我错过了什么?
一些背景信息
我阅读了很多Bitbucket的“处理拉取请求”的文档,但对我来说仍然不清楚。
我可以看到我从new_feature
分支中的所有提交都被应用到了master
分支(通过git merge --squash
),我也可以看到哪些文件已经更改。但现在当我在Bitbucket的拉取请求界面上按下“合并”按钮时,我会在主分支中有另一个合并提交,它不会更改任何文件(所有更改已经通过之前的git merge --squash
应用了),只是将所有这些提交历史记录合并到主分支中,这不是我想要的。
来源:https://confluence.atlassian.com/display/BITBUCKET/Working+with+pull+requests
手动将请求拉到本地系统
有时候使用一种工作流,首先在本地测试changeset然后再接受拉取请求是一个好主意。你可以对任何拉取请求进行操作。典型的工作流程如下所示:接收一个Bitbucket中的拉取请求。使用传入的changeset更新您的本地存储库。检查和/或测试更改集。如果你认为更改集是好的,就将其合并到你的本地存储库中。你可能需要解决一些冲突。然后,将本地存储库推回到Bitbucket。在Bitbucket上,将在“拉取请求”选项卡中将拉取请求标记为已接受。如果您不喜欢更改请求,则在本地放弃更改并在Bitbucket上拒绝拉取请求。有什么想法吗?