今天在一个2025.000分支上开发,因为临时有个任务,所以切换到2025.001上开发,并提交掉任务
然后切回2025.000,拉取代码(貌似在没有切回的时候,左下角分支概况就出现了推送99+的提示,不确定),反正切回原分支分支之后拉取代码,每次拉代码都会出现一条合并提示

但是我在原分支还没提交任何代码呀?怎么会有合并操作?
尝试push掉大量提交,但是显示推送失败。Git钩子检测到不合法的提交信息
很奇怪
最后发现:由于主管的更高权限操作分支,比如在dev合并release分支时,发现了错误的提交信息,导致合不上,主管没联系本人reset,直接把分支到进行了某种回滚分支,然后修改不正确的信息,自己又提交上了
比如我切分支之前由新到旧的记录为4-3-2-1-0,但是合并时发现3存在错误信息合不上,然后直接回退整个分支到2位置,但是4-3这些本地旧的分支,在我本地都有记录了,所以一旦没问题的别人在新链条上提交信息时,我这边都会进行git pull更新操作也就是包含了merge操作,链条产生一条新的节点
然后我push的时候,我的分支上的4-3是曾经错误的信息,所以我这条分支是合并不上的,但是我又不能直接去修改那一条错误提交再合并(权限不够或太麻烦)
所以我直接删除我的本地分支(变更先stash),丢弃我的链条,然后拉取开发最新的一条dev分支即可。
切到别的分支,点删除
注意:删除本地分支会导致本地分支提交记录,Stash内容等全部丢失,所以删除之前必须在外部提前备份修改文件,或者在git进行搁置,而不是暂存,不然会直接丢失
丢失后两个方法恢复:
网上的命令,检索所有的commitid
1 | git fsck --lost-found |
idea寻找本地历史记录进行恢复(比较快)
最后最后:奇怪的是第二天重新打开IDEA,发现之前的Stash又都出来了?不确定是不是提交了新代码出来的,反正是都没丢失????

如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !