git下的Resource.Designer.cs

Wil*_*sch 17 git visual-studio xamarin xamarin-studio

我在一个人们使用两个不同的IDE(Visual Studio和Xamarin Studio)来处理相同代码的环境中工作.不幸的是,它们生成的文件Resource.Designer.cs略有不同.这是一个自动生成的文件,但我们确实在VC中需要它,或者当您尝试在克隆后构建它时,项目会抱怨.

这里的问题是我们确实需要在vc中使用这个文件,但这些微小的变化非常烦人.如果您使用一个IDE提交项目,然后有人将项目下载到另一个IDE并重建,您会看到对该文件的更改.然后,如果您尝试切换分支,Git可能会因为合并冲突而拒绝.同样,如果您尝试合并两个分支,则几乎可以保证在该文件的标头中看到合并冲突.

如果两个人使用相同的IDE构建,但运行时版本略有不同,则会出现同样的问题.我正在查看一个示例,并在Git中显示以下更改:

-  // Runtime Version: 4.0.30319.18444
+  // Runtime Version: 4.0.30319.34011
Run Code Online (Sandbox Code Playgroud)

解决问题的一个解决方案是,仅对于此文件,让Git始终选择注释的"本地"版本,并忽略对注释的所有更改.但我不知道是否有办法做到这一点.如果没有,是否有另一种方法可以避免对此文件进行少量更改而持续麻烦?

ben*_*gen 7

我们的开发团队通过承诺Resource.Designer.cs我们的Git回购来解决这个问题.之后,每个开发人员都可以运行git update-index --assume-unchanged Resource.Designer.cs以使Git忽略对该文件的更新.

更新索引后,对Resource.Designer文件所做的更改将不会出现在执行a的"未提交的更改"部分中git status.

如果必须提交该文件,则执行git update-index --no-assume-unchanged Resource.Designer.cs,Git将再次开始跟踪对该文件的更改.


oni*_*ake 3

git 中有多种方法可以解决这个问题。请参阅: https: //gist.github.com/canton7/1423106。该链接涉及配置文件,但您可以根据需要将其应用到您的情况。

我认为解决此问题的最简单方法是将文件提交为Resource.Designer.cs.in,然后在克隆后手动将其复制到Resource.Designer.cs. 同时添加Resource.Designer.cs到您的.gitignore文件中。