问题
Git监控的工程里,总有那么几个文件,你不想被跟踪但是却又不得不保留在工程目录里的,比如我们工程项目里的SwitchServerMode
这个类,可以切换服务地环境的控制类,时不时要改一下。我习惯通过git rm -r --cached
来让文件不被跟踪,某一天不小心忘记加--cached
了,后果当然是文件被删除,并且被我保存到了仓库历史里了。
解决方案:
1.
git rev-list -n 1 HEAD -- <file_path>
:获取文件被影响的最后一个版本的commit id
,file_path
是文件路径。
2.git checkout <deleting_commit>^ -- <file_path>
:让文件恢复到受影响版本的上一个版本,注意^
和~
的区别,^
当有多个父分支的时候,需要指名具体是哪一个父分支。
网友评论