If you just want a plain “Are there any differences from HEAD?”:
git diff-index --quiet HEAD
If the exit code is 0, then there were no differences.
If you want “What files have changed from HEAD?”:
git diff-index --name-only HEAD
If you want “What files have changed from HEAD, and in what ways have they changed (added, deleted, changed)?”:
git diff-index --name-status HEAD
Add -M
(and -C
) if you want rename (and copy) detection.
These commands will check both the staged contents (what is in the index) and the files in the working tree. Alternatives like git ls-files -m
will only check the working tree against the index (i.e. they will disregard any staged (but uncommitted) content that is also in the working tree).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…