git: 로컬 git 서버에 대한 원격 액세스를 위한 URL 형식

git: 로컬 git 서버에 대한 원격 액세스를 위한 URL 형식

이 기사의 링크를 시도했지만 나에게 적합하지 않은 것 같습니다.https://stackoverflow.com/questions/31801271/what-are-the-supported-git-url-formats

문제는 로컬 git 서버가 설정되어 있고 /srv/repo/예를 들어 사용자 이름으로 해당 이름으로 저장소를 만들 때 test.git동일한 네트워크의 다른 로컬 컴퓨터에서 원격 서버로 추가하고 싶다는 것입니다 --bare.testusertest.git

예를 들어 로컬 Git 서버의 IP 주소는 192.168.1.10이고 IP 주소가 192.168.1.100인 컴퓨터에 해당 저장소를 추가해야 합니다.

이 URL을 사용하고 사용자 owner 를 변경하면 test.gitpush 및 pull이 가능하며 이는 예상대로 작동함을 의미합니다.

sudo chown -R git:testuser test.git/
sudo chown -R git:testuser test.git/*
[email protected]:/srv/repo/test.git

하지만 이름이 다른 사용자를 사용하여 저장소를 만들었습니다. testuser아마도 저장소의 사용자 및 그룹 소유자가 test.git속한 것 같습니다 testuser. 사용자 소유자를 다음으로 변경하지 않으면 test.git푸시 및 풀이 실패합니다 git.sudo chown -R git:testuser test.git/*

원격 저장소를 다음과 같이 추가하고 싶습니다. git://192.168.1.10/~testuser/srv/repo/test.git/에 있기 때문에 사용자 대신 사용자로 사용하십시오.testusergittest.gittestuser

답변1

SSH 프로토콜을 사용하여 서버측 저장소에 액세스하는 경우 읽기/쓰기 권한은 서버의 사용자/그룹/전세계 권한에 따라 결정됩니다. 리포지토리에 대해 이 권한을 설정하려면 git init리포지토리를 생성할 때 매개변수와 함께 명령을 사용하면 됩니다. --shared설정하면 --shared=true저장소를 그룹 수준에서 쓸 수 있게 됩니다. 그러면 동일한 그룹의 모든 사용자가 저장소에 쓸 수 있습니다.

그러면 단계는 다음과 같습니다.

mkdir test.git
git init --bare --shared=true test.git

git 프로토콜을 사용하면 서버에 통신을 처리하는 데몬이 있습니다. 이 경우 데몬과 저장소는 동일한 사용자가 소유할 수 있습니다.

서버 측 Git 설정에 대한 자세한 내용은 다음에서 확인할 수 있습니다.힘내 책.

관련 정보