git 暂时忽略个别文件的更改

最近开始参与到 SDK 的开发工作中,因为上层 Demo 与 SDK 是在同一个 Visual Studio 的解决方案中(.sln),但是项目的目录却不在同一个目录下的,同事直接把 SDK 的路径设置为 Demo 的相对路径 ……SDK 目录下了。如下图:

而我的项目 Demo 项目目录是在自己管理的一个统一的存放项目的目录下的,如果按他这个格式需要把 SDK 存放到统一的项目目录的上一层才可以,否则我就要修改 Visual Studio 的解决方案配置,将目录指定到我自己的 SDK 目录下。但这样把代码上传以后到他那边他又因为路径无法正常加载项目了,所以纠结了很久。终于让我找到一个办法就是临时修改这个文件,只在本地暂存,而且提交的时候不会提示该文件被更新了。神奇的 git 就是这么人性化,使用如下命令设置你需要临时忽略的文件。

git update-index --assume-unchanged project.sln

而当你需要真的修改这个文件的时候,把他从临时忽略列表再拉出来就好了,使用如下命令:

git update-index --no-assume-unchanged project.sln

这样就完美的解决了我们两个之间冲突的问题,当你这样临时忽略一个文件后,在 Windows 下 TortoiseGit 客户端会显示一个灰色的图标以代表这个文件被临时忽略了,与彻底忽略的灰白色图标是有差别的: