当多人开发的时候,你本地修改git commit 了多次,这些git commit就会和其他开发人员的commit混在一起,很难看清哪些commit才是一次完整的内容。
这时用git pull --rebase就很好,能将你的所有修改集中在一起。
但是多次使用这个功能后,发现,很容易发生丢文件或者丢数据的问题,怎么办,吓死人啊。
解决方案:
在当前git工程的目录下,打开.git/logs/HEAD文件,这里会保存一段时间内你的提交记录,找到你所熟悉的,git pull --rebase之前的一次提交的记录
217 013fb7cb8995dce32251b1949cfcc5e8c0df6635 d10d39b2bed6d0916cad6f76267fac336183398e x'x <xx@xx.com> 1460428760 +0800 commit: 修改单测
218 d10d39b2bed6d0916cad6f76267fac336183398e 82e12e76d8be323adda0a56b2e1c432d828c924d xx <rxx@xx.com> 1460428780 +0800 pull --rebase: checkout 82e12e76d8be323a
这里可以看出来,git pull --rebase之前的一次commit后的ID:d10d39b2bed6d0916cad6f76267fac336183398e
git branch new //新开一个分支,
git checkout new//跳到这个分支;
git reset --hard d10d39b2bed6d0916cad6f76267fac336183398e //reset到这个commit点; 观察一下你的代码是不是已经是你想要的结果了, 如果是的,就可以去master分支上执行git reset操作。如果不是,尝试git reset到其他commitID所在点,知道确定哪个commitID是你要的。git reset过去;