Git合并-手动合并-强制conflic具有整个新旧文件版本

Git合并-手动合并-强制conflic具有整个新旧文件版本,git,version-control,merge,diff,git-merge,Git,Version Control,Merge,Diff,Git Merge,如何强制git merge在所有文件或所有不同的文件上生成冲突,以生成具有整个旧版本和整个新版本的冲突,此类文件的示例: <<<<<<<<<<A A B C D OLD OLD OLD E F G ... Z ============ A B C D NEW NEW NEW EEEEEEE FFFFF GGG ... Z >>>>>>>>>>B 我理解为什么git会自动将“

如何强制git merge在所有文件或所有不同的文件上生成冲突,以生成具有整个旧版本和整个新版本的冲突,此类文件的示例:

<<<<<<<<<<A
A
B
C
D
OLD
OLD
OLD
E
F
G
...
Z
============
A
B
C
D
NEW
NEW
NEW
EEEEEEE
FFFFF
GGG
...
Z

>>>>>>>>>>B
我理解为什么
git
会自动将“DEF”添加到“file”中。但我想要一种迫使git“思考”的方法:

  • 主/文件和新分支/文件不同
  • 我将与整个旧版本和整个新版本进行冲突,以便让我的用户手动解决它
我读过其他关于制作“合并驱动程序”的帖子,但我还不清楚如何使用它来制作git。(脚本很明显,只有几行)


有兴趣的人请注意:我不使用任何合并工具。我想合并数据集和结果集。在所有情况下,当它们不同时(即使只在一个分支上编辑),我希望使用我自己的工具链手动处理它们,以处理这些数据集。

您仍然需要告诉Git,这些文件应被视为二进制文件,如果存在任何差异,将导致冲突。现在由您自己使用类似于
git show otherbranch:thefile
git show HEAD:thefile
的工具来调查文件。编辑文件后,添加它并提交
git

,但任何半正式的合并工具都会显示每个修订的内容。为什么合并冲突的格式很重要?在你的例子中,没有冲突需要解决。。。你能更清楚地说明你想做什么吗?谢谢@Hamish指出读者不清楚的地方:)。我想用我自己的工具链将TSV电子表格与数据集和结果集合并。所以我不想使用任何合并工具,只需告诉git您想使用不同的diff驱动程序,而不是它的普通内置diff工具,无论是Beyond Compare 3(BC3)还是kdiff3。这些工具可以让您查看完整的文件。可以将这些设置添加到配置文件(请参阅手册页)中。请按照上面的示例进行操作。设置自定义
mergetool
difftool
没有帮助,因为不会引发冲突->因此不会引发解决。总而言之:
git共同主控;吉特股份有限公司新罗分行;回送换行符>>文件;gitci-a-m'+';git联合硕士;git merge new_branch
不会产生任何冲突,即使文件不同。问题是,如何迫使git提出这样的冲突根据你的答案,我找到了这个。你有更多相关的链接建议吗?我已经用
*二进制文件
创建了
.gittattributes
,现在它可以将文件识别为二进制文件。这没有帮助。请按照上面的例子。总而言之:
git共同主控;吉特股份有限公司新罗分行;回送换行符>>文件;gitci-a-m'+';git联合硕士;git merge new_branch
不会产生任何冲突。双方都没有更改。你们需要双方都做出改变才能产生冲突。你们建议在合并的每个文件末尾添加一些垃圾数据,将这些垃圾提交到回购协议中,以强制冲突。然后从所有文件的末尾删除它?由于以下错误,在不提交的情况下添加垃圾数据不起作用:
错误:您对以下文件的本地更改将被合并覆盖:
即使我在合并端添加垃圾数据,当另一个文件更改时,也不起作用。Git将其与递归策略合并:
通过“递归”策略进行的自动合并文件合并。文件| Bin 22->26字节
$ echo ABC > file
$ git add file
$ git commit -m '+) file = ABC'
[master 6e91bce] +) file += ABC
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 file
$ git checkout -b new_branch
Switched to a new branch 'new_branch'
$ echo DEF >> file 
$ git add file
$ git commit -m '+) file += DEF'
[new_branch 27e29bf] +) file += DEF
 1 files changed, 1 insertions(+), 0 deletions(-)
$ git checkout master
Switched to branch 'master'
$ git merge --no-ff new_branch
Automatic merge went well
$ cat file
ABC                                         
DEF