Hello, I mean: git init echo -e "AB RA\nCADABRA\0" > a.txt && git add a.txt && git commit - m"Initial" echo -e "AB2RA\nCADABRA\0" > a.txt && git add a.txt && git commit - m"Second" echo -e "AB3RA\nCADABRA\0" > a.txt && git add a.txt && git commit - m"Third" git log -pa show the diffs and handles the file as text. git rebase -i HEAD~2 I EDIT the “Second” commit (the one before “Third”, not the second in the editor). master|REBASE 1/2$ echo -e "AB4RA\nCADABRA\0" > a.txt && git add a.txt && git rebase --continue [detached HEAD 78408d2] Second Date: Mon Mar 22 10:35:57 2021 +0200 1 file changed, 0 insertions(+), 0 deletions(-) warning: Cannot merge binary files: a.txt (HEAD vs. 149b67e (Third)) Auto-merging a.txt CONFLICT (content): Merge conflict in a.txt error: could not apply 149b67e... Third Resolve all conflicts manually, mark them as resolved with "git add/rm <conflicted_files>", then run "git rebase --continue". You can instead skip this commit: run "git rebase --skip". To abort and get back to the state before "git rebase", run "git rebase --abort". Could not apply 149b67e... Third master|REBASE 2/2$ And now `git diff` and `git diff --text` both print: diff --cc a.txt index ee95164,d7db2f0..0000000 Binary files differ But git diff --text should show how the files differ. Greetings Дилян On Mon, 2021-03-22 at 12:53 +0700, Bagas Sanjaya wrote: > > > On 22/03/21 00.30, Дилян Палаузов wrote: > > Hello, > > > > I create a small text file ending with \0 and add it to git: > > Did you mean `echo -e "\0" >> a.txt`? > > > In .gitattributes I specify: > > > > *.txt diff merge=text text > > > > I create several commits by changing the small text file. > > > > The result is at https://github.com/dilyanpalauzov/git-diff-biinary ;. > > > > I do now > > > > git rebase -i HEAD~2 > > and before the “second commit” type E to edit that commit. > > > > I change the small file. > > > > git add a.txt && git rebase --continue > > > > git says: > > > > [detached HEAD bc00e34] second commit > > Date: Sun Mar 21 19:16:15 2021 +0200 > > 1 file changed, 2 insertions(+), 1 deletion(-) > > warning: Cannot merge binary files: a.txt (HEAD vs. 04c77de (third > > commit)) > > Auto-merging a.txt > > CONFLICT (content): Merge conflict in a.txt > > error: could not apply 04c77de... third commit > > Resolve all conflicts manually, mark them as resolved with > > "git add/rm <conflicted_files>", then run "git rebase --continue". > > You can instead skip this commit: run "git rebase --skip". > > To abort and get back to the state before "git rebase", run "git > > rebase > > --abort". > > Could not apply 04c77de... third commit > > > > > > 'git diff' and 'git diff --text' show: > > > > diff --cc a.txt > > index 7a61015,dc817ec..0000000 > > --- a/a.txt > > +++ b/a.txt > > > > The file does not contain <<HEAD===>>> markers, despite having > > merge=text attribute. > > > > HOW CAN I force git diff to show the differences and git merge to > > include the <<<===>>> markers? > > > > I have to say, that at different occassions git diff --text does work > > ass expected (e.g. when I call git diff --cached --text). > > > > I call now > > git rebase --abort > > git log -p > > > > git shows the differences in the small text file ending with \0. So > > apparently log reads the option, but diff does not. > > > > Using git 2.30.2. > > > > Greetings > > Дилян > > > > Does `file a.txt` shows it as being binary file? I do the similar and > it just says "data". >