자식 : 파일 권한 변경을 무시하도록 자식을 구성하는 방법


21

리눅스 서버에 git 프로젝트가 있습니다.

Mac과 Linux를 사용하여 프로그래밍을 수행합니다. 문제는 Mac 파일 시스템의 권한이 Linux 에서처럼 제대로 작동하지 않으므로 모든 파일이 umask 0755에있는 것처럼 보입니다. 그래서 Mac에서 코드를 가져올 때마다 git status모든 파일이 변경되고 사용 git diff하면 umask에만 변경 사항이 있음을 보여줍니다. git에게 umask 변경 사항을 저장하고 확인하지 말라고 어떻게 말할 수 있습니까?

감사!


1
OS X이 유닉스 스타일의 권한을 지원한다고 확신합니다 ...
grawity

1
umask와 권한은 동일하지 않습니다. 여기서하고있는 일을 정말로 알고 있습니까?
Marnen Laibow-Koser

답변:


28

core.fileMode구성 특성을로 설정하십시오 false. 이 명령으로이를 쉽게 수행 할 수 있습니다.

git config core.fileMode false

이것이 리포지토리 당 설정입니까 아니면 전 세계적으로이 작업을 수행 할 수 있습니까?
acme

2
@acme : 모든 git 설정과 마찬가지로 각각 추가 스위치 --global, 또는 을 전달하지 않고 리포지토리, 사용자 또는 시스템 전체에서 설정할 수 있습니다 --system. 자세한 내용 git help config을 참조하십시오.
패치

감사! 그러나 전역으로 설정하면이 설정이 새 리포지토리에 자동으로 추가되지 않으며 로컬 컴퓨터의 설정입니까?
acme

@acme : 예, 옵션을 설정하면 --global사용자 계정으로 로컬로 액세스 한 모든 리포지토리의 모든 작업에 영향 을 줍니다. 다른 사람에게는 영향을 미치지 않습니다. 특정 리포지토리의 모든 사용자에 대해 설정하려면 모든 사람이 푸시하는 서버에서 리포지토리 당 설정을 전환해야합니다.
패치

1

이것을 토글하는 작은 쉘 스크립트가 있습니다.

고양이 ~ / bin / git-ignore-chmod-toggle

#!/bin/bash
# Copyright 2015 Alexx Roche, MIT license.
# based on http://superuser.com/a/261076

gitCHMODstate=$(git config --get core.fileMode)

# toggle with git config core.fileMode true 

if [ $gitCHMODstate == 'true' ];then
    echo "git now ignores file mode (chmod)"
    git config core.fileMode false
else
    echo "git not looks for files modes changed with chmod"
    git config core.fileMode true
fi

이것으로 git을 토글하고 다른 변경 사항을 확인한 다음 신속하게 되돌릴 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.