Gitosis sam w sobie nie ma funkcji usuwania ze względu na sposób, w jaki jest zarządzany za pomocą git commits. Jeśli usuniesz repozytorium z gitosis.conf
i zatwierdzisz zmianę, repozytorium nie będzie już dostępne. Możesz go ponownie włączyć później lub ostatecznie zalogować się na serwerze i usunąć plik z repositories/
katalogu gitosis .
Sklonowałem moje gitosis-admin.git
repozytorium i dodałem następujące, a następnie zatwierdziłem:
[group gitosis-admin]
writable = gitosis-admin test1
members = jbouse
Następnie poszedłem do mojego katalogu domowego i wykonałem następujące czynności:
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
Powinno to z powodzeniem wypchnąć na serwer, a następnie wyczyściłem test1
katalog i sklonowałem go z 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
To również powinno wypychać również pomyślnie, więc następnie usuwam test1
wiersz z gitosis.conf
konfiguracji i zatwierdzam zmianę ... Następnie próbuję:
cd test1
echo "Final test" > test.txt
git add test.txt
git commit -m 'Third commit'
git push
W przeciwieństwie do poprzednich dwóch wypychań, ten kończy się niepowodzeniem z następującym komunikatem o błędzie:
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly
Błąd jest taki, że gitosis nie ma teraz skonfigurowanego niczego dla test1
repozytorium. Jeśli spróbujesz ponownie sklonować repozytorium, otrzymasz ten sam błąd.
Musisz zalogować się do komputera i usunąć tam repozytorium, a następnie usunąć repozytorium z pliku konfiguracyjnego gitosis.
źródło
Odpowiedź Jeremy Bouse jest dobrą strategią, ale tak naprawdę nie usuwa repozytorium. Czasami może być konieczne usunięcie repozytorium z powodu miejsca na dysku, bezpieczeństwa itp.
Polecam więc metodę ultrafedde, z dodatkiem, że prawdopodobnie będziesz musiał
su
usunąć repozytorium, którego właścicielem jest użytkownik „git”, którego konfigurujesz.źródło