一定不要乱用 git reset --head HEAD^!!会丢代码
简直是天坑,上周我在快要下班的时候提交代码,用了git reset --head HEAD^,虽然回退到之前的版本了,但也直接把之前的代码删除了……
在网上查了之后,用git reflog 查看日志,然后找到需要恢复的commit,
git reset --hard xxx
但是这个只能回复提交了commit的,我当时有两个文件是没有commit的,也直接没有了,于是我只好手动ctrl+z,还好找回来了 T-T
总结: git reset --head HEAD^ 简直是天坑啊! 慎用,我当时是百度出来的,也没仔细看,就直接上手了,当时真的是脑壳晕了
顺便回顾下git的一些操作:
git reset --hard HEAD^:删除工作空间的改动代码,撤销commit且撤销add
git reset --soft HEAD^:只撤销commit,暂时没有发现其他副作用,这个才是我上面想要的效果,结果误用成hard了
git commit --amend: 进入vim模式,可以重新编辑写错的commit。
删除分支:
git branch -D xxx分支名 该分支必须完全和它的上游分支merge完成,如果没有上游分支,必须要和HEAD完全merge
git branch -d xxx分支名 这样写可以在不检查merge状态的情况下删除分支
撤销合并:
git merge amend