恢复本地删除的文件
有时候需要恢复已删除的文件,由于 git 会帮我们做记录,所以不必从远程重新下载:
git ls-files -d | xargs -i git checkout {}
撤销最后一次 commit
还没有提交到服务器,只本地撤销 commit
参考:
git reset HEAD~
已经提交到服务器,撤销本地及服务器 commit
参考:
git reset --hard HEAD~ git push -f origin master
注意 如果是 gitlab , 默认 master 分支受保护,push 出错:
git push -f origin master Total 0 (delta 0), reused 0 (delta 0) remote: GitLab: You are not allowed to force push code to a protected branch on this project. To git@git.ooclab.com:ooclab/cloud.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'git@git.ooclab.com:ooclab/cloud.git'
这时只需进入 gitlab 项目管理界面,取消保护,再提交(提交后,建议再加上保护): https://git.ooclab.com/ooclab/cloud/protected_branches
查看指定文件的修改历史
git log -p filename
恢复指定文件到某个 commit
git checkout [commit-ref] [filename]