Я просматриваю различия, введенные коммитом в репозиторий на GitHub, и к одному из файлов добавлено имя файла с этой загадочной (для меня) строкой. Имя файла - gulpfile.js, за которым следует 100755 -> 100644. Кто-нибудь знает, что это значит?
1 ответ
По сути это означает, что коммит удалил бит "исполняемый" из файла, т.е. chmod -x
был сделан автором коммита.
Числа в том же формате, что и st_mode в Unix stat().
Первые
10
(восьмеричные) указывают на обычный файл. (04 является каталогом, 12 является символической ссылкой, 16 является специфическим для Git значением, указывающим подмодуль.)Следующие
0644
(восьмеричные) являются обычными разрешениями Unix - файл доступен для чтения всем и для записи его владельцем. По сравнению с этим0755
также означает, что файл может выполняться всеми.
(Обратите внимание, что Git не хранит реальные разрешения, только похожий: он всегда хранит 0755, если файл исполняемый, и 0644, если это не так, и 0000 для каталогов и других не файловых объектов.)
Вы можете увидеть эти значения для локальных репозиториев Git, запустив git ls-tree <treeish>
, например:
$ git ls-tree HEAD 100644 blob e42c7ff372783714c873fb8f33c7c04fba1d7e02 Plain_file.txt 040000 tree c909f07b68d787edabba4384f105fc37ed942e17 This_is_a_directory 120000 blob ba6b7e01db412305ff893b6c1cf279094f5656ac Symlink_to_a_file.txt 160000 commit 6a41d623cdd0f93f16dff679963d2a5b4f856bdb Some_submodule 100755 blob fe7ce105da1306e8648d8e2849cc3c72ca512d20 An_executable_script.sh