问题复现
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后发现修改内容没了,为什么呢?
[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上
参考
Further Reading :Git常用命令汇总