记录下今天git遇到的一个坑:
背景:
活儿干完了,创建个测试分支自己玩,不提代码,不合并。中途来活儿了,又把分支切回需求分支,结果刚在自己玩的分支里写的代码被带到了需求分支。
原因:
新建的文件没有纳入版本管理,所以checkout后被带到了切换的分支
解决:
方式一:
git commit
**
切回原分支,把原分支的代码提交一下,再切其他分支就行
.**
方式二:
git stash
切回原分支,先git stash暂存起来,再切其他分支。被暂存的文件回头切回原分支执行git stash pop将之前储藏的修改取出来即可。
git stash指令可将当前未提交的修改(即,工作区的修改和暂存区的修改)先暂时储藏起来,这样工作区干净了后,就可以临时切换到其他分支。
force checkout后的代码找回:
使用IDEA来checkout,会有弹窗提示:
smart checkout
会把本地修改的代码先保存到statsh中,再checkout分支。
force checkout
在当前分支修改的所有内容都会丢失
误点force checkout后,可在这里恢复:
项目目录下右键,local history --> show history --> 双击需要恢复的文件 --> 像处理合并冲突一样,将代码通过
>>>
移过来 --> revert恢复
最后关于git stash指令,这篇文章很妙:https://zhuanlan.zhihu.com/p/117553180
截图备份一下,别回头这文章没了血亏。截图里文章的作者:
版权归原作者 -代号9527 所有, 如有侵权,请联系我们删除。