如何让 git 忽略 Atmel Studio 的 .cproj 文件的部分内容?

How can I have git ignore parts of Atmel Studio's .cproj file?

我们有几个人在 git 存储库中处理一个 Atmel Studio 7 项目。每次有人打开项目时,Atmel Studio 都会对项目文件 (*.cproj) 进行一些用户特定的更改,例如添加调试探针的序列号并更新打开时使用的确切 Atmel Studio 版本号。我想忽略这些更改,但仍将文件保留在存储库中,因为它包含所有必要的项目设置。

有没有人有解决这个问题的好方法?

您可以使用 git update-index 来完成您想要的。

在每个用户的沙盒中,运行这个命令:

git update-index --assume-unchanged <file>

这将告诉 Git 从现在开始忽略此沙箱中对 <file> 的所有更改。

如果您改变主意并想要提交对 <file> 的更改,您必须先撤消该操作,因为 git add 和其他命令不会看到任何更改标记为 assume-unchanged 的文件:

git update-index --no-assume-unchanged <file>

编辑,两年后...

更好的解决方案是使用:

git update-undex --skip-worktree <file>

它完全适用于此处的用例。