我最近遇到了一种情况,当我从本地上游进行rebase,然后尝试在github上推送到我的本地PR时,我的错误修复请求被搞砸了.我想知道我是否采取了正确的方式,或者我的工作流程需要改变.
基本上,我遵循这个工作流程:
fix分支.git push -u origin fix 并从该分支机构提交PR.git fetch upstream; git merge upstream/mastergit push.git rebase master我在我的fix分支机构本地,由于冲突手动合并它们.git add; git rebase --continue.git push,那就是出错的地方.似乎没有一个很好的干净方式将rebase fix分支放入我的PR.所以我想知道我是否错过了一步,或者我是否应该改变一步.我不确定git push origin它是否正确,或者它是否需要更具体(例如,使用分支名称).应该/我可以git push --force在最后一步尝试过(PR的一部分在我的github存储库中,但很可能没有其他地方被拉掉)?
Thi*_*ter 11
不要在pull请求中引入合并.适当的工作流程如下:
git pull --rebase upstream master这样就可以避免合并提交,最终在pull请求中提交基于上游存储库当前主服务器的干净提交.
如果您在rebase之前推送,则必须执行强制推送,-f以便在重新定位后再次推送,因为您在rebase期间重写历史记录.
值得记住的是:合并(不是快进或重定义)绝不应该出现在简单的修复/功能分支中 - 就像你永远不应该在你的"主"分支中重写历史记录,其他人可能会根据自己的工作.