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

问题复现

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常用命令汇总

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值