如何通过git协同工作时将.cproject保持为每个用户本地

时间:2014-05-28 02:17:10

标签: eclipse git version-control

我有一个C ++项目,我正与其他几个人一起工作。我们中的一些人拥有使用OSX的Mac,而我们中的一些人拥有配备Windows 7或Windows 8.1的PC。我们目前正在使用eclipse编辑项目并使用git进行版本控制。

问题在于,每当您更改一个团队成员的计算机上的属性设置时,都会更新.cproject文件。由于在OSX和Windows上使用了不同的配置/文件扩展名,我们希望.cproject文件保持本地。

我们尝试通过gitignore为.cproject文件取消跟踪.cproject,但这只是将存储库中的.cproject文件一起删除。我们还尝试为.cproject设置一个假设未更改但如果.cproject被更改,则所有这些都需要手动处理冲突和更新。

有没有办法将文件保存在存储库中,但只能在本地更改?即合并不会更新.cproject文件。

1 个答案:

答案 0 :(得分:0)

您可以在git checkout上自动考虑content filter driver

  • 获取.cproject.tpl个文件
  • 采取一个脚本(涂抹脚本)能够:
    • 识别该模板文件的内容
    • 识别环境(OS)或访问本地私人文件
    • 生成私有(非版本化).cproject文件(它甚至可以将其与具有私有值的文件合并,由开发人员维护,适合本地环境)

smudge

(图片来自" Customizing Git Attributes"来自Git Book

请注意,EGit / JGit(仍有issue with smudge/clean filters

可能不完全支持