引言
git是一款很好用的代码托管工具。但是如果发生了误操作,丢失的文件如何找回呢?本小节就通过亲身经历来解决这个问题。
1,情景
产生误操作的如下:
首先,甲和乙两个人都在一个分支上进行代码修改,假设分支为develop。
其次,两人最后一次同步是在2016年1月8号。
在1月12号上午乙已经把自己修改的代码push到了远方服务器上。一切正常。
误操作是甲做的,时间是2016年1月12号下午。操作如下:
1>修改了好多代码,并且一直没有commit!!没有备份!!
2>下午快下班的时候,甲打算把代码提交到服务器上,悲剧即将发生:
1) git pull origin develop,失败,因为乙也修改了代码,直接pull肯定失败。
2) git stash,这一步肯定成功了,因为stash是一种很常见的在不提交本地修改时,临时切换到别的分支的手段。
3) git pull origin develop,由于前面执行了stash,所以这次pull成功了,本地是乙的修改结果。
4) git stashpop,这时部分文件进行了自动merge,但是很多文件都需要手动merge(两个人都修改了相同文件的相同位置)。
5) ls,看了一眼,没过大脑!
6) git checkout --,悲剧在此时发生了!那些需要手工merge的文件全部变成了乙修