I've encountered an issue with `git diff --exit-code` where it returns 0 for binary files that have actual changes. > What did you do before the bug happened? (Steps to reproduce your issue) 1. Initialize a new git repository: ``` git init ``` 2. Create a binary file and commit it: ``` echo '*.bin binary' > .gitattributes dd if=/dev/urandom of=a.bin bs=32 count=1 git add . git commit -m 'commit' ``` 3. Modify the binary file: ``` echo a > a.bin git diff --exit-code # says "Binary files a/a.bin and b/a.bin differ" echo $? # returns 0 ``` > What did you expect to happen? (Expected behavior) `git diff --exit-code` should exit with 1 > What happened instead? (Actual behavior) `git diff --exit-code` returns 0 even when the binary file is modified. > Anything else you want to add: I could not find the exact condition to change exit code. In some cases, depending on the content of the file, `git diff --exit-code` does return 1 as expected. I don't use an external diff tool. [System Info] git version: git version 2.46.1 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh libcurl: 7.68.0 zlib: 1.2.11 uname: Linux 5.15.153.1-microsoft-standard-WSL2 #1 SMP Fri Mar 29 23:14:13 UTC 2024 x86_64 compiler info: gnuc: 9.4 libc info: glibc: 2.31 $SHELL (typically, interactive shell): /bin/bash [Enabled Hooks] Best regards, Kohei