在文本文件中导出GIT中的所有冲突

时间:2014-03-19 13:29:08

标签: git

我需要向那些必须审查PR的人们展示我修复的冲突。 有没有办法让git在文本文件中导出所有冲突?

我需要的是带有" cat"的文本文件。合并后包含冲突的所有文件

3 个答案:

答案 0 :(得分:2)

你也可以使用这个:

git diff --name-only --diff-filter=U | xargs awk '/<<<<< HEAD/,/>>>>>>/'

这会从文件中删除冲突(如果冲突区域以<<<<< HEAD开头并以>>>>>>结尾),这样您就可以将它们转储到新文件中 - 如果原始文件很大而且您只是需要显示冲突。

答案 1 :(得分:1)

“出口......所有冲突”是什么意思?

  • 您的意思是冲突文件列表吗?

    然后使用git status --short(简洁)或git status并将其输出传输到文件(git status >/tmp/conflicts.txt)。

  • 你的意思是补丁集与你为修复冲突所做的工作有关吗?

    然后记录一个或多个修复冲突的提交(可能在临时分支上),然后使用git format-patch <base_commit>..<current_tip>

  • 你的意思是文件是否带有嵌入式冲突标记?

    然后从git status中识别此类文件,并将其从工作树中复制。

答案 2 :(得分:1)

使用git diff --name-only --diff-filter=U的组合列出包含未合并冲突的文件和cat

你应该得到类似的东西:

git diff --name-only --diff-filter=U | xargs cat 

要将所有内容都放在文件中,只需重定向输出:

git diff --name-only --diff-filter=U | xargs cat > conflicts.diff

或者只是压缩文件

git diff --name-only --diff-filter=U | xargs zip -r9 conflicts.zip