Hey Jeff, Thx for your answer. There is no .gitattributes file in the repo. I think that the git heuristic will also detect utf-16 files as binary (in windows), so i think that is the reason why my file is binary (i have to check that tomorrow). If i add a .gitattribute file i have the problem that git diff will treat the old and the new blob as utf-8, which generate garbage. Do you have another idea? Could it be possible to add only a space in code (utf-8) and then add the real content in a second commit, so the old and the new one are both utf-8? > Am 24.07.2017 um 20:18 schrieb Jeff King <peff@xxxxxxxx>: > >> On Mon, Jul 24, 2017 at 07:11:06AM +0200, tonka tonka wrote: >> >> I have a problem with an already committed file into my repo. This git >> repo was converted from svn to git some years ago. Last week I have >> change some lines in a file and I saw in the diff that it is marked as >> binary (it's a simple .cpp file). I think on the first commit it was >> detected as an utf-16 file (on windows). But no matter what I do I >> can't get it back to a "normal text" text file (git does not detect >> that), but I is now only utf-8. I also replace the whole content of >> the file with just 'a' and git say it's binary. > > Git doesn't store a flag for "binary-ness" on each file (though see > below). As the diffs are generated on the fly when you ask to compare > two versions, so too is the determination of "is this binary". > > The default heuristic looks at file size (by default, if the file is > over 500MB it's considered binary) and whether it has any zero-byte > characters in the first few kilobytes. But note that if _either_ side of > a diff is considered binary, then Git won't show a text diff. > > If you want a particular diff to show all content, even if it doesn't > look like text, add "-a" to your git invocation (e.g., "git show -a"). > > That said, you can also use .gitattributes (see "git help attributes") > to mark a file as binary or not-binary, skipping the heuristic check. > I'm guessing since you converted from svn that you don't have a > .gitattributes file, but it's possible that somebody later added one > that marks the file as binary (and so the solution would be to drop that > entry). > > -Peff