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일 것입니다. 이 시나리오에서는 두 명 이상의 관리자가 신뢰할 수 있는 저장소의 중요한 분기에 푸시하도록 허용하지 않습니다.