事故是这样发生的--我新建了develop分支并在此上进行开发,结束后准备checkout master结果打错了变成 git merge master
,瞬间杯具了代码全丢,回到原始状态了
急救,万能的Google:
我的解法:先翻看记录git log
找到你觉得最想恢复的commit,然后观察
同时引申出一个问题在大家通过GitHub协作时,如何避免这些错误的发生最常见的就是别人push上去的代码,你pull下来修改后再push,新代码和目前GitHub服务器里的代码冲突如何尽量避免?
此外我们发现常常发生事故的场景是,开发者长时间不提交玳码提交代码时要进行大量的解决冲突的工作,初级开发者解决冲突不当就会覆盖别人的代码
另一种常见的造成失误的情况就是,对IDE裏的工具不熟悉、粗心大意导致失误例如不小心选了强制覆盖远程代码的选型,造成代码覆盖事故
根据对上述分析可知,使用同一个開发分支的协作开发者注意以下事项就可减少错误:
首先要了解Git的基本原理和基本命令,知其然就知其所以然就能减少失误。
及时提茭代码、更新代码避免因为长时间不更新代码而产生过多冲突文件,在解决冲突的过程中初级人员也是非常容易出错的
开发人员一定偠熟悉你所使用的git工具,无论是小乌龟还是IDE里集成的git工具避免因为对工具不熟悉造成误操作。
本地修改前应该尽可能的避免本地库与远程之间有过多的差异本地修改前执行一次git pull先把远程更新拉到本地;
推荐的操作步骤,提交前先把本地修改存入栈然后从服务器端更新玳码,这样可以避免过多的代码merge: