Gitosis로 Git 리포지토리를 삭제하는 방법


10

Gitosis를 사용하여 원격 서버에서 일부 Git 리포지토리를 관리하고 있습니다. 처음부터 시작했기 때문에 많은 실수를합니다. 이것이 바로 지금 Gitosis로 만든 Git 리포지토리를 삭제해야하는 이유입니다. Gitosis를 사용하여 가능합니까, 아니면 해당 머신에 로그인하여 거기서해야합니까?

답변:


13

Gitosis 자체는 git commit을 통해 관리되는 방식 때문에 remove 기능이 없습니다. 저장소에서 저장소를 제거하고 gitosis.conf변경을 커밋하면 저장소에 더 이상 액세스 할 수 없습니다. 나중에 다시 활성화하거나 결국 서버에 로그인하여 gitosis repositories/디렉토리 에서 파일을 제거 할 수 있습니다 .

gitosis-admin.git리포지토리를 복제 하고 다음을 추가 한 후 커밋했습니다.

[group gitosis-admin]
writable = gitosis-admin test1
members = jbouse

그런 다음 홈 디렉토리로 이동하여 다음을 수행했습니다.

mkdir test1
cd test1
git init
git remote add origin git@server:test1.git
echo "Testing" > test.txt
git add test.txt
git commit -m 'First commit'
git push origin master:refs/heads/master

이것은 서버로 성공적으로 푸시 한 다음 test1디렉토리를 지우고 gitosis에서 복제합니다.

git clone git@server:test1.git
cd test1
echo "Test worked" > test.txt
git add test.txt
git commit -m 'Second commit'
git push

이것은 또한 성공적으로 푸시되어야하므로 구성 에서 test1라인 을 제거 gitosis.conf하고 변경 사항을 커밋하십시오 ... 그런 다음 다음을 시도하십시오.

cd test1
echo "Final test" > test.txt
git add test.txt
git commit -m 'Third commit'
git push

이전 두 푸시와 달리이 오류는 다음 오류 메시지와 함께 실패합니다.

ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly

오류는 현재 gitosis에 test1저장소에 대해 구성된 것이 없기 때문 입니다. 리포지토리를 다시 복제하려고하면 동일한 오류가 발생합니다.


5
그런 다음 서버에서 실제 리포지토리를 제거 할 수 있습니다. 로그인하고 git의 홈 디렉토리로 이동하여 거기에서 "repositories"로 이동하면 모든 저장소에 대한 디렉토리가 있습니다. gitosis.conf에서 비활성화 한 것을 제거하십시오.
유진 Lazutkin

2

머신에 로그인하여 리포지토리를 제거한 다음 gitosis 구성 파일에서 리포지토리를 제거해야합니다.


0

Jeremy Bouse의 대답은 좋은 전략이지만 실제로 저장소를 삭제 하지는 않습니다 . 때로는 디스크 공간, 보안 등으로 인해 저장소를 삭제해야 할 수도 있습니다.

따라서 su설정 한 "git"사용자 가 가지고있는 리포지토리 를 제거 해야 할뿐만 아니라 ultrafedde의 방법을 권장 합니다.

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