我做那样的事情:
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 >
Run Code Online (Sandbox Code Playgroud)
审核更改的人正在执行以下操作:
git pull
git checkout master
git merge --squash new_feature
git push origin master
Run Code Online (Sandbox Code Playgroud)
我希望这会接受拉动请求,但是没有,我错过了什么?
我阅读了很多bitbucket的文档"使用pull请求",但这对我来说仍然不太清楚.
我可以看到所有来自new_feature
分支的提交都已应用于master
分支(通过git merge --squash
),我可以看到哪些文件已经更改,但是现在当我在bitbucket的pull-request接口上按"merge"时,我在master中有另一个提交,即合并并且这不会更改任何文件(所有更改都已由之前应用git merge --squash
)但只是将所有这些提交历史记录放入主文件中,这不是我想要的.
通过:https://confluence.atlassian.com/display/BITBUCKET/Working+with+pull+requests
手动将请求提取到本地系统
有时,在接受拉取请求之前,最好使用工作流来测试本地系统上的变更集.您可以使用任何拉取请求执行此操作.典型的工作流程是:在Bitbucket中接收拉取请求.使用传入的变更集更新本地存储库.调查和/或测试更改集.如果更改集合良好,则将其合并到本地存储库中.您可能必须解决一些冲突.然后,将本地存储库推回Bitbucket.回到Bitbucket,Pull请求在Pull requests选项卡中被标记为已接受.如果您不喜欢更改请求,则在本地放弃更改并拒绝Bitbucket上的pull请求.想法?