南宁做网站推广的公司哪家好,wordpress 显示评论,中文wordpress模版,苏州知名网站制作本来想拉一个功能分支进行新的功能开发#xff0c;合并代码发现没有冲突居然有文件被修改了#xff0c;贸然选择最近的一次回滚提交#xff0c;没想到不假思索的push -f 导致一部分dev主干的代码不见了。
事故记录
开发分支origin/dev#xff0c;功能分支file
合并之后发…本来想拉一个功能分支进行新的功能开发合并代码发现没有冲突居然有文件被修改了贸然选择最近的一次回滚提交没想到不假思索的push -f 导致一部分dev主干的代码不见了。
事故记录
开发分支origin/dev功能分支file
合并之后发现我并没有修改任何代码冲突都是选择dev分支的。但是却有一两个文件自动修改了本能的觉得先会退再说然后再找原因然后就选中最近的一个点进行行了push -f然后错误就产生了。 当我选中第二个点之后就变成了这样 git log也变成这样 这是reflog日志
4b9a2ba6c (HEAD - dev, origin/prod, prod, file) HEAD{0}: reset: moving to 4b9a2ba6ca2bcd745464a52f9cc63777035b96c1
2b5dc76c2 (origin/dev) HEAD{1}: merge origin/dev: Fast-forward
4b9a2ba6c (HEAD - dev, origin/prod, prod, file) HEAD{2}: reset: moving to 4b9a2ba6ca2bcd745464a52f9cc63777035b96c1
2b5dc76c2 (origin/dev) HEAD{3}: commit (merge): Merge branch file into dev
46cb1af51 (origin/dev, dev) HEAD{4}: checkout: moving from dev to dev
46cb1af51 (origin/dev, dev) HEAD{5}: checkout: moving from 0cc0f3332769c4c920c1ef5eac68ea5d5598879c to dev
0cc0f3332 HEAD{6}: checkout: moving from dev to 0cc0f3332
16d26a5a8 (origin/home, home) HEAD{7}: reset: moving to HEAD{1}
4b9a2ba6c (HEAD - dev, origin/prod, prod, file) HEAD{8}: checkout: moving from home to dev
16d26a5a8 (origin/home, home) HEAD{9}: checkout: moving from dev to home
4b9a2ba6c (HEAD - dev, origin/prod, prod, file) HEAD{10}: reset: moving to 4b9a2ba6ca2bcd745464a52f9cc63777035b96c1
836279e82 HEAD{11}: commit (merge): Merge branch file into dev
46cb1af51 (origin/dev, dev) HEAD{12}: checkout: moving from file to dev
4b9a2ba6c (HEAD - dev, origin/prod, prod, file) HEAD{13}: checkout: moving from prod to file
4b9a2ba6c (HEAD - dev, origin/prod, prod, file) HEAD{14}: commit: ops:修复冲突
bd0e9531b HEAD{15}: commit (merge): Merge remote-tracking branch origin/home into prod
878c72a08 HEAD{16}: checkout: moving from dev to prod
46cb1af51 (origin/dev, dev) HEAD{17}: checkout: moving from prod to dev
878c72a08 HEAD{18}: reset: moving to HEAD
878c72a08 HEAD{19}: reset: moving to HEAD
878c72a08 HEAD{20}: checkout: moving from dev to prod
7c4f807e4 HEAD{21}: merge origin/home: Merge made by the ort strategy.
0cc0f3332 HEAD{22}: merge origin/home: updating HEAD
0cc0f3332 HEAD{23}: checkout: moving from home to dev
16d26a5a8 (origin/home, home) HEAD{24}: commit: ops: 更新测试用例处理
还好同事有本地最新的代码直接覆盖解决了分支危机之后还是另可合并也不要轻易强制推送。
事后总结
后面根据最新的de分支提交记录查看记录找到46cb1af51点是最新的
执行命令: git reset --hard 46cb1af51
\HEAD 现在位于 46cb1af51 Merge branch prod into dev 呼终于回来了面对困难的时候还是要冷静思考git的操作和后悔机制还是很好的360度无死角解决你各种问题简直良心工具。 分析结果
这还是对git的异常情况处理少简单的提交合并谁都会但是碰到问题还是的深入研究这次的问题主要还是选错了分支回退的点选中了file分支的某个点然后回到了file分支而不是根据dev主干上某个合并的点进行回退git自然的把file分支记录当成了主干把dev分支当成了合并过来的代码。所以才产生了最近几天的记录都没有了的情况。只是大意手残选了一个最近的点进行了pushpush容易恢复难啊以此记录错误经历。
最后
点赞关注评论一键三连每周分享技术干货、开源项目、实战经验、国外优质文章翻译等您的关注将是我的更新动力
引用
Git进阶系列 | 8. 用Reflog恢复丢失的提交_git reflog 恢复-CSDN博客
Git 命令 checkout、reset、revert、reflog 使用介绍_git reflog-CSDN博客