管理由Git中的IDE创建的临时文件

时间:2017-03-08 16:50:29

标签: git ide

目前我正在使用Atmel的AVR Studio 7.0(基于VS2015-shell),当涉及IDE运行时创建的临时文件时,它有一些时髦的行为。在进一步讨论之前,我想说我对Atmel Studio的潜在问题不感兴趣,对于不同的网站来说这是一个不同的问题。相反,在管理我的存储库中的文件方面,我将询问如何处理短期内的行为。

所以无论如何,我会解释会发生什么,以便了解我正在处理的事情。在Atmel Studio中创建的每个C ++项目都有一个与之相关的解决方案(.atsln文件)。然后,每个解决方案都是.atsuo文件。每次解决方案关闭时,.atsuo文件都会被修改。我的问题是我试图将所有内容都检查到存储库中,检查该文件并没有多大意义,因为即使我只打开一次项目,运行它并关闭它,它也会改变...

现在,让我谈谈真正好的部分......尽管我只想检查.atsuo文件,我被迫......如果.atsuo文件被删除,那么解决方案文件将无法再次运行,我将得到“Atmel AVR Studio 7.0已停止工作......”然后崩溃。所以,如果我不想每次都要构建一个新的解决方案,我就被迫检查该文件!但我不想因为它不断变化!!!

我该怎样做才能在Git中管理这个文件?

更新

在一天结束时,.atsuo的更改内容不会造成任何伤害。

2 个答案:

答案 0 :(得分:4)

.atsuo文件基于Visual Studio .suo Solution User Options文件。这些文件包含用户级别设置,如打开工具窗口和设置断点,不应检入存储库。 Atmel扩展了格式并在其中保留了一些其他内容,导致每次编译时都会更改此文件。这是第二个非常好的理由不检查这个文件。离开它会产生非常嘈杂的提交,并使你分享代码的任何人都感到痛苦。

正如您所指出的,Atmel Studio需要此文件才能正常运行,因此不要将其删除,而是将其添加到.gitignore文件中,以便Git永远不会跟踪它。 (虽然,既然你现在已经检查了它,你就需要将它从你的Git存储库中删除并告诉git停止跟踪它。git rm --cached path/to/projectName.atsuo应该这样做。)

此处the .gitignore file I use for my Atmel Studio projects

#Binaries
Debug/
Release/

#User Specific Files
*.atsuo

---

几年后,我能够将Atmel Studio的.gitignore文件合并到github / gitignore项目的社区支持部分。

https://github.com/github/gitignore/blob/master/community/embedded/AtmelStudio.gitignore

答案 1 :(得分:2)

任何版本控制系统中临时和输出文件的技巧都是使用“忽略”机制。

在git的情况下,这是通过在名为.gitignore的git目录树的根目录中创建和添加文件来完成的,该文件可以指定任何和所有特定文件,目录,通配符等。详细信息请输入git help ignore并进行阅读。