Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 防止git自动文件合并_Wpf_Git_Xaml - Fatal编程技术网

Wpf 防止git自动文件合并

Wpf 防止git自动文件合并,wpf,git,xaml,Wpf,Git,Xaml,我的公司只是想用KDiff3从Microsoft VSS切换到Git,我们遇到了一个问题 众所周知,Git跟踪的是内容而不是文件。这是一个伟大的功能,我们喜欢它。但碰巧的是,同一文件的两个不同部分必须由两个程序员同时编辑。 Git尝试执行一个diff和一个merge,如果它可以在final中插入这两个编辑,它就会这样做。 但有很多时候,这两个版本是相互排斥的 例如: 原文: <Grid> <Grid.RowDefinitions> <RowDefiniti

我的公司只是想用KDiff3从Microsoft VSS切换到Git,我们遇到了一个问题

众所周知,Git跟踪的是内容而不是文件。这是一个伟大的功能,我们喜欢它。但碰巧的是,同一文件的两个不同部分必须由两个程序员同时编辑。 Git尝试执行一个diff和一个merge,如果它可以在final中插入这两个编辑,它就会这样做。 但有很多时候,这两个版本是相互排斥的

例如: 原文:

<Grid>
  <Grid.RowDefinitions>
   <RowDefinition />
   <RowDefinition />
   <RowDefinition />
  </Grid.RowDefinitions>


</Grid>

编辑#1:


编辑#2:


正如您所看到的,这两个版本并没有创建合并冲突,但是-如果您对WPF、XAML有点熟悉的话-Grid.Row属性将相互“杀死”,从而产生一个笨拙的视觉效果

所以这个“冲突”不在文本中,而是在逻辑中。 当然,这是一个简单的例子,使用严格的编码风格可以解决这个问题。但是我们正在改变版本控制系统,所以我们有很多这样的代码,所以我们不能用新的编码风格重写整个项目

是否可以让Git或KDiff3只检查文件本身是否不同,这意味着冲突而不是内容

谢谢,
SanTa

在某些情况下,由于文件的性质,例如数据库文件或代码生成的文件,不应为合并比较文本文件。有了这个想法,我们就可以让git觉得这些文件是二进制数据文件,而不进行比较

.gittributes
文件中,指定此选项以设置比较忽略类型签入情况:

*.xaml binary

引用

有些文件看起来像文本文件,但实际上是 作为二进制数据处理。例如,Xcode项目在Mac上 包含一个以.pbxproj结尾的文件,该文件基本上是一个JSON (纯文本JavaScript数据格式)数据集由 IDE,它记录您的构建设置等。虽然是 从技术上讲,它是一个文本文件(因为它都是UTF-8),您不想这样做 这样对待它,因为它实际上是一个轻量级数据库—您可以 如果两人更改内容,则无法合并内容,并且通常存在差异 这些都没用。该文件将由计算机使用。在里面 本质上,您希望将其视为二进制文件

你可以检查一下,它似乎是相关的
<Grid>
  <Grid.RowDefinitions>
   <RowDefinition />
   <RowDefinition />
   <RowDefinition />
  </Grid.RowDefinitions>
 <CheckBox Content="Check it!" Grid.Row="1" />

</Grid>
*.xaml binary