Git 서버를 설정했지만 사용자가 커밋을 푸시하는 데 몇 가지 문제가 있습니다. 총 3명의 사용자가 있지만 그 중 한 명이 특정 파일을 푸시하면 해당 파일은 다른 사용자에 대해 읽기 전용이 되며 푸시하려고 하면 압축 풀기가 실패합니다.
모든 권한을 재귀적으로 설정하여 이 문제를 일시적으로 해결할 수 있지만 777
이는 잘못된 접근 방식이며 다음 푸시 전에만 문제를 해결합니다.
매번 권한을 변경하지 않고도 선택한 모든 사용자가 푸시하고 풀할 수 있도록 하려면 어떻게 해야 합니까?
답변1
저장소 만들기을(를) 사용하면 git init --shared
이렇게 됩니다.:
Git 저장소가 여러 사용자 간에 공유되도록 지정합니다. 이를 통해 동일한 그룹에 속한 사용자가 저장소에 푸시할 수 있습니다. 지정되면 구성 변수 "core.sharedRepository"가 설정되어 해당 변수
$GIT_DIR
아래의 파일과 디렉터리가 요청된 권한으로 생성됩니다.
쓰기 권한 이 있어야 하는 모든 사용자를 동일한 그룹에 넣으면 Git(다양한 SSH 및 스마트 서버 요소 포함) g+sx
이 그룹 쓰기 가능 및 .chgrp -R
receive.denyNonFastForwards
이렇게 하면 저장소의 설정 도 활성화되며 원하는 경우 수동으로 비활성화할 수 있습니다.