18

我正在与 Xamarin.Android 应用程序的设计人员合作,我们无法保持同步。我们使用 Mercurial,但我的问题应该与 Git 或任何其他 DVCS 相关。我的 .hgignore 文件如下所示:

^bin/
^obj/
^Components/
\.keystore$

我不确定这些文件:

^Resources/Resource.designer.cs
\.sln$
\.userprefs$
\.csproj$

谢谢!

更新
发现这个很棒的社区 wiki 确认不包括 *.pidb 和 *.userprefs 并暗示确认包括 *.sln 和 *.csproj
请参阅:Visual Studio 项目和解决方案的 .gitignore

我不喜欢包含 Resource.designer.cs 文件。它会在资源更改后自动重新生成,并包含以下通知:

// ------------------------------------------------------------------------------
//  <autogenerated>
//      This code was generated by a tool.
//      Mono Runtime Version: 4.0.30319.17020
// 
//      Changes to this file may cause incorrect behavior and will be lost if 
//      the code is regenerated.
//  </autogenerated>
// ------------------------------------------------------------------------------

通过合并,您可能会拒绝布局文件中的 id 名称更改,但接受包含新名称的文件。

4

2 回答 2

18

要回答你的问题,你想知道这个:

^Resources/Resource.designer.cs
\.sln$
\.userprefs$
\.csproj$

Resource.designer.cs文件绝对不应被忽略。当然,在某些情况下它会重新生成,特别是如果您更改生成它的 resx 文件,但只需将其提交到版本控制即可消除其他所有人的麻烦,他们不需要重新生成它。

和文件绝对不.sln应该被忽略。解决方案文件包含哪些项目是解决方案的一部分,而 csproj 文件包含项目信息,您肯定需要提交这两者。.csproj

.userprefs然而是一个本地文件,它包含使用机器的用户的用户首选项,您不希望在版本控制中使用它。

这是我自己的 Xamarin 忽略文件,评论如下:

syntax: glob
_ReSharper.*/
[Bb]in/
[Oo]bj/
*.user
*.userprefs
*.suo
.DS_Store

第一行告诉 Mercurial 使用 glob 库来处理文件掩码。

下一行忽略 ReSharper 临时文件,这些临时文件根据项目或解决方案名称添加到自己的子目录中。请注意,您可以要求 ReSharper 为此使用机器上的临时文件夹,而不是将其存储在解决方案目录中,但这可能是每个用户的设置,因此为了确保这些文件夹不会意外提交,只需忽略它文件夹。

然后我忽略 bin 和 obj 文件夹,处理大写和小写首字母,即。bin 和 bin 一样被忽略。

然后我忽略扩展用户、userprefs 和 suo 的所有内容,因为所有这些都存储本地用户首选项。

最后一个条目忽略 Mac 资源文件夹。

如果您有 NCrunch、TeamCity 或 FinalBuilder,则可能需要添加其他条目:

_NCrunch_*/
_TeamCity.*/
*.fb7lck
*.fbl7
*.fbpInf
于 2013-08-08T13:06:26.067 回答
4

这几乎就是我的 .gitignore 文件的样子:

*.pidb
*.userprefs
bin
obj
.DS_Store
*.suo

更一般地说,这些是您不需要的文件(因此您确实需要其余文件)。

于 2013-08-08T10:36:03.697 回答