1.撤销工作区的修改
$gitcheckout -- xxx.txt (这里是两杠)
2.撤销暂存区的修改
如果将工作区的修改add到暂存区,那么需要使用reset将add撤销
$git resetHEAD xxx.txt
3.撤销已经commit的修改
有多种解决方案。
(1)使用revert撤回并创建一个新的commit,历史提交仍然在,因此如果是提交了非常蛋疼的如失误删除了别人的文件等,是不能让老大看到的,不然代码review的时候就GG了,因此使用第二种方法来解决。
gitrevert HEAD
gitrevert HEAD^
gitrevert commitId
(2)恢复到某个commitId版本,本地历史提交都没了,适合回复不好的上次提交。
git reset --hardcommitId
git push origin HEAD -f 强行是远程git和本地一样
4.撤掉所有更改,强制和远程代码一样。
git fetchorigin xxx
git reset --hard origin/xxx
git fetch 只是下载远程的库的内容,不做任何的合并 git reset 把HEAD指向刚刚下载的最新的版本