目前我正在 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不会造成任何损害。
该.atsuo文件基于 Visual Studio.suo 解决方案用户选项文件。这些文件包含用户级别设置,例如打开工具窗口和设置断点,不应将其签入存储库。Atmel 扩展了该格式,并保留了一些其他内容,这些内容会导致该文件在每次编译时发生更改。这是不签入此文件的第二个很好的理由。保留它会产生非常嘈杂的提交,并使与您共享代码的任何人都感到痛苦。
正如您所指出的,Atmel Studio 需要此文件才能正常运行,因此不要删除它,而是将其添加到您的.gitignore文件中,这样 Git 就永远不会跟踪它。(尽管如此,由于您现在已经签入了它,所以您需要将其从 Git 存储库中删除,并告诉 git 停止跟踪它。git rm --cached path/to/projectName.atsuo应该可以解决问题。)
这是我用于 Atmel Studio 项目的 .gitignore 文件。
\n\n#Binaries\nDebug/\nRelease/\n\n#User Specific Files\n*.atsuo\nRun Code Online (Sandbox Code Playgroud)\n\n\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94
\n\n几年后,我能够获得.gitignoreAtmel Studio 的文件合并到 github/gitignore 项目的社区支持部分中。
https://github.com/github/gitignore/blob/master/community/embedded/AtmelStudio.gitignore
\n