git的恢复操作
①:工作区修改了文件(add之前),但是发现文件是你不想修改的,或者修改错误的,执行git checkout -- 文件名,在工作区把文件恢复到修改之前的状态;
②:工作区修改了文件,并且已经添加到缓存区(add之后,commit之前),执行git reset HEAD 文件名(HEAD表示最新的版本),此操作是把缓存区修改的内容返回到工作区,如果此时你还是不想修改此文件的话,就再次执行第一步操作,就可以恢复到文件修改前的状态;
③:已经把文件提交给了分支(commit之后,push之前),执行git reset --hard HEAD^(HEAD^表示上一个版本),或者先用git log查看已经提交的版本号,执行git reset --hard 版本号的ID,就可以恢复到之前的版本,此时工作区和缓存区也是干净的;
③:push的时候忽略文件的操作:(忽略大文件操作 .gitignore不好使的时候)
commit之后,push之前,输入命令
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch 你想要忽略的文件名" --prune-empty --tag-name-filter cat -- --all
如果git提示你这次的操作 Your index contains uncommitted changes.,说明你要忽略的文件不是这一次commit的文件,然后你可以再次commit一下,这一步操作就能通过,第二部输入命令 git commit --amend -CHEAD,执行完这步后,这个文件将会从你的commit记录里移除,并且以后commit都将不会再把它commit了,这时候就可以git push把本地代码push到github上了。如果因为大文件在上几次commit中而无法忽略的话,就备份你的文件,再恢复到某个版本,用你的备份文件重新覆盖