Поскольку вы отметили этот вопрос тегом linux, вы можете просто зарегистрировать файл. Теперь, когда вы изменили его на своем компьютере:
% chmod +x script.sh
Git заметит, что файл изменился:
% git status
On branch old2
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: script.sh
И вы можете увидеть, что файл, по сути, теперь исполняемый:
% git diff foo.sh
diff --git a/foo.sh b/foo.sh
old mode 100644
new mode 100755
Режим 100644
отражает неисполняемый файл, а режим 100755
отражает исполняемый файл, аналогично битам прав доступа к файлу Unix. (Если бы вы изменили файл в дополнение к изменению разрешений, вы бы также увидели изменения.)
Когда вы отметите это, и ваши соавторы извлекут ваши изменения, файл также станет исполняемым для них.
Обратите внимание, что это не работает автоматически в системах, которые не имеют понятия бит выполнения (например, Windows), и в этом случае вам нужно выполнить < a href = "https://stackoverflow.com/questions/21691202/how-to-create-file-execute-mode-permissions-in-git-on-windows"> что-то с update-index
.
Обратите внимание, также на то, что это зависит от вашей системы, которая правильно настроила core.filemode
. Это значение должно быть установлено на true
во всех системах, отличных от Windows.
% git config core.filemode
true
Если по какой-то причине эта команда возвращает false
, а вы работаете на компьютере, отличном от Windows, запустите:
% git config core.filemode true
чтобы снова включить его.
person
Edward Thomson
schedule
15.07.2016