RedHat 6.5 시스템에 Git 서버를 설치하려고 하는데
다음 튜토리얼을 따릅니다.1,2,삼, 솔직히 말하면 읽을수록 모호한 것들이 많아졌습니다.
기본 저장소의 소유자가 되고 커밋을 담당하는 git 사용자를 생성한다면 개발자가 잘못된 코드(gitolite, 더 새로운 것이 있나요?)를 푸시하는 것을 어떻게 방지할 수 있습니까?
코드가 검토되고 푸시 권한이 부여된 경우에만 개발자가 푸시할 수 있도록 허용하면서 git 서버의 가장 간단한 구성은 무엇입니까(나는 gitlab을 좋아하지만 상사는 이를 허용하지 않습니다).
참고: 모든 개발자는 SSH를 통해 서버에 액세스할 수 있습니다. 나는 그들의 ssh.pub 키를 수집했습니다
답변1
귀하의 질문에 대답하십시오 :
기본 저장소의 소유자가 되고 커밋을 담당할 git 사용자를 생성하려는 경우 개발자가 잘못된 코드를 푸시하는 것을 어떻게 방지할 수 있나요?
대답은 git 사용자를 생성하는 것이 아닙니다. 표준 UNIX 사용자 및 그룹을 사용하여 원격 저장소에 대한 액세스를 제어할 수 있습니다. git 푸시는 SSH를 통해 작동하므로 SSH를 통해 리포지토리를 호스팅하는 서버에 연결할 수 있는 한 리포지토리에서 읽고, 복제하고, 가져올 수 있으며, 서버의 계정을 통해 리포지토리를 읽을 수 있습니다. 저장소에 대한 쓰기 액세스 권한도 있는 경우 커밋을 푸시할 수도 있습니다.
답변2
git에서 기본적으로 활성화되는 기능 중 하나는 다음과 같습니다.
git push --force
일반적인 상황에서는 항상 다음을 통해 저장소에서 이 기능을 비활성화해야 합니다.
git config --system receive.denyNonFastForwards true
병합 작업 흐름 시나리오는 끌어오기 요청이 많을 때 문제가 될 수 있지만 최선의 해결책은 항상 개발자가 Git을 실제로 이해할 수 있고 커밋을 많이 하지 않을 수 있는 좋은 병합 및 분리 개발 작업을 갖는 것입니다(주로 그들이 이해하지 못하기 때문에). 버전 관리의 본질) 가능하다면 충돌이 줄어들 것입니다. 좋은 훈련과 이해가 항상 가장 좋습니다. 커밋을 로컬로 리베이스하여 이를 방지할 수도 있습니다. 두 번째 옵션은 Github일 수 있습니다. 이 경우 신뢰할 수 있는 저장소의 중요한 분기를 푸시하는 여러 명의 관리자가 없을 것입니다.