I’m attempting to perform fixups via git-rebase of UTF-16 LE files (the project I’m working on requires that exact encoding on certain files). When the rebase is complete, Git changes that file’s encoding to UTF-16 BE. I have been using the newer working-tree-encoding attribute in .gitattributes. I’m using Git for Windows. $ git version git version 2.19.1.windows.1 Here is a sample UTF-16 LE file (with BOM and LF endings) with following atributes in .gitattributes: test.txt eol=lf -text working-tree-encoding=UTF-16 I put eol=lf and -text to tell Git to not change the encoding of the file on checkout, but that doesn’t even help. Asides, the newer working-tree-encoding allows me to view human-readable diffs of that file (in GitHub Desktop and Git Bash). Now, note that doing for example consecutive commits to the same file does not affect the UTF-16 LE encoding. And before I discovered this attribute, the whole thing was even worse when squash/fixup rebasing, as Git would modify the file with Chinese characters (when manually setting it as text via .gitattributes). So, again the problem with the exposed .gitattributes line is that after fixup rebasing, UTF-16 LE files encoding change to UTF-16 BE. For long, I have been working with the involved UTF-16 LE files set as binary via .gitattributes (e.g. “test.txt binary”), so that Git would not modify the file encoding, but this doesn’t allow me to view the diffs upon changes in GitHub Desktop, which I want (and neither via git diff).