자식 버전 제어를 사용하여 파일의 권한 만 업데이트하고 커밋 그냥 설정 some.sh실행 (로

그냥 설정 some.sh실행 (로 파일을 chmod 755 ...) 권한은 콘텐츠를 업데이트하지만되었다. 파일을 git 에 커밋 하여 실행 파일이 clone / checkout / pull 에서 복원 / 설정되도록 할 수 있습니까?

업데이트 : 새 권한이 제출되었음을 어떻게 추적 github합니까?



답변

기본적으로 git은 파일 실행 권한을 변경하면 업데이트합니다. 다른 권한은 변경하거나 추적하지 않습니다.

실행 권한을 수정할 때 변경 사항이 표시되지 않으면 파일 모드를 무시하는 구성이 git에있을 수 있습니다.

파일 의 .git폴더 에서 프로젝트 config를 살펴보면 다음과 같은 내용이 표시됩니다.

[core]
    filemode = false

true선호하는 텍스트 편집기에서로 변경 하거나 다음을 실행할 수 있습니다.

git config core.filemode true

그런 다음 파일을 정상적으로 커밋 할 수 있어야합니다. 권한 변경 만 커밋합니다.


답변

@ fooMonster 기사가 나를 위해 일했습니다.

# git ls-tree HEAD
100644 blob 55c0287d4ef21f15b97eb1f107451b88b479bffe    script.sh

보시다시피 파일에는 644 권한이 있습니다 (100은 무시). 755로 변경하고 싶습니다 :

# git update-index --chmod=+x script.sh

변화를 저 지르다

# git commit -m "Changing file permissions"
[master 77b171e] Changing file permissions
0 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 script.sh


답변

나를 위해 작동하지 않습니다.

모드가 true이고 파일 권한이 변경되었지만 git은 할 일이 없다고 말합니다.

git init
git add dir/file
chmod 440 dir/file
git commit -a

문제는 git이 특정 권한 변경 만 인식한다는 것입니다.


답변