恢复特定文件到过去版本的解决办法

事情的起因是提交java作业的时候,因为有一个模板文件被改动而无法merge。于是需要把这个文件还原到最初下载时的样子

首先是查询特定文件的git log记录

1
git log ./folder/filename

在windows的git bash中,是无法通过 git reset --hard 版本哈希 filename 来回退的

搜索后发现应该用checkout

1
git checkout 版本hash filename

可以避免影响已经完成的作业

但是这样是无法直接push的,因为有文件回退到了过去的版本。会出现 you are not currently on a branch

可以通过 git push origin HEAD:master --force 来强制执行

成功!

Stackoverflow 好用!