当前位置:   article > 正文

git 使用场景 源分支提PR→合入PR→revertPR→源分支rebase目标分支→源分支修改的代码丢了_pr revert

pr revert

问题复现

1・小博 拉取 fix-bug分支进行BUG修复                       员工A提PR
2・小婷(commiter)检视代码并合入代码                     员工B合入PR到release分支
3・合入的代码引入新问题,小宇 把PR进行revert               员工C revert PR
4・小博重新修复BUG  fix-bug分支rebase一下origin/release   员工A 在提PR的fix-bug分支 rebase  origin/release
# rebase后发现修改内容没了,为什么呢?
  • 1
  • 2
  • 3
  • 4
  • 5

[Q&A]rebase后发现修改的内容没了,为什么呢?

因为git认为变化过程是:原来内容→追加内容→删除内容,此时rebase时,删除动作为最新提交,所以会把本地修改给清除,如何再重提这个PR呢?

[Q&A]如何再重提这个PR呢?

1. git reflog	                         1. 找到员工A提PR 的那个提交542a43
2. git fetch	                         2. 拉取最新代码
3. git reset --hard origin/release       3. 本地使用远程release分支代码
4. git cherry-pick 542a43	             4. 把542a43内容 cherry-pick过来
5. git branch -vv	                     5. 为了查看 本地分支对应的远程分支 的名字fix-bug
6. git push origin HEAD:fix-bug -f	     6. 把本地分支 强推到 远程的fix-bug上
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

参考

Further Reading :Git常用命令汇总

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/979678
推荐阅读
  

闽ICP备14008679号