在本地rebase之后更新git pull请求

4 git github

我最近遇到了一种情况,当我从本地上游进行rebase,然后尝试在github上推送到我的本地PR时,我的错误修复请求被搞砸了.我想知道我是否采取了正确的方式,或者我的工作流程需要改变.

基本上,我遵循这个工作流程:

  • 叉在github上
  • 克隆在本地机器上.设置原点(自动)和上游遥控器.
  • 创建fix分支.
  • 编辑文件.
  • git push -u origin fix 并从该分支机构提交PR.
  • 与此同时,我的修复程序中的一个文件在主存储库中得到了更新.所以我git fetch upstream; git merge upstream/master
  • 我更新我的出处/主人:git 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请求中引入合并.适当的工作流程如下:

  • 叉子
  • 克隆
  • [核心编码工作]
  • [提交(S)]
  • Rebase(到上游/主站),例如使用 git pull --rebase upstream master
  • 创建拉取请求.

这样就可以避免合并提交,最终在pull请求中提交基于上游存储库当前主服务器的干净提交.

如果您在rebase之前推送,则必须执行强制推送,-f以便在重新定位后再次推送,因为您在rebase期间重写历史记录.

值得记住的是:合并(不是快进或重定义)绝不应该出现在简单的修复/功能分支中 - 就像你永远不应该在你的"主"分支中重写历史记录,其他人可能会根据自己的工作.