There's another way to add an entry to the index directly: git update-index --add --cacheinfo ,, The first three numbers of the mode describe the type of the entry, "100" is a regular file. The second three number describe the permissions. Only "644" (non-executable) and "755" (executable) are supported.