Executable bit
Git not only tracks file content but also the files' executable bits (on file systems that support it, that is).
There are two modes that git is a able to assign to a file: 100644
for regular files and 100755
for executable files.
The mode of a file can be shown with
git ls-files -s bin/build.sh
This bit can be modified with
git update-index --chmod=+x bin/build.sh
See also the
core.filemode
option.
Empty directories / .gitkeep
Git is unable to track empty directories.
In order to mark a directory as «logically empty», a convention is to put (a zero size) file named .gitkeep
into the directory.
Of course, the directory is then not empty anymore, but people familiar with this convention at least recognize that the directory is supposed to be empty.