以下是一些常见所要处理的案例:
(1)为保险起见,我们可以先切一个分支出来,保存当前版本,必然以后???需要这个版本,又要重新开发
git checkout -b [branch]
(2)先本地代码回到上上次提交的版本
git reset --hard head^
(3) 提交本地代码到远程
如果你在直接add,commit后直接 git push。会报错
err: Updates were rejected because the tip of your current branch is behind
因为远程本地分支回滚后,版本将落后远程分支,所以你要先pull最新的,在push,这就很尴尬,因为最近一次提交的代码我都不想要了干嘛还要拉到本地
所以你只能强制提交 这是个非常危险的命令,因为它会把该版本之前commit的数据全部丢失
git push -f
git clean -df
git reset --hard
但问题是第一个命令只删除所有untracked的文件,如果文件已经被tracked, 修改过的文件不会被回退。而第二个命令只把tracked的文件revert到前一个版本,对于untracked的文件(比如编译的临时文件)都不会被删除。
原文:https://www.cnblogs.com/doggod/p/13282879.html