At the root of git repo a .gitattributes file. This file contains the following values:
*.txt text merge=text
*.py text merge=union
<
Built-in merge drivers
There are a few built-in low-level merge drivers defined that can be asked for via the merge attribute.
text: Usual 3-way file level merge for text files. Conflicted regions are marked with conflict markers <<<<<<<, ======= and >>>>>>>. The version from your branch appears before the ======= marker, and the version from the merged branch appears after the ======= marker.
binary: Keep the version from your branch in the work tree, but leave the path in the conflicted state for the user to sort out.
union: Run 3-way file level merge for text files, but take lines from both versions, instead of leaving conflict markers. This tends to leave the added lines in the resulting file in random order and the user should verify the result. Do not use this if you do not understand the implications.
Reference: http://schacon.github.io/git/gitattributes.html