Jak usunąć repozytorium Git za pomocą Gitosis

10

Używam Gitosis do administrowania niektórymi repozytoriami Git na zdalnym serwerze. Od samego początku popełniam wiele błędów. Właśnie dlatego muszę teraz usunąć repozytorium Git, które utworzyłem za pomocą Gitosis. Czy jest to możliwe przy użyciu Gitosis, czy muszę zalogować się na tym komputerze i zrobić to stamtąd?

Ionuț G. Stan
źródło

Odpowiedzi:

13

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.confi 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.gitrepozytorium 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 test1katalog 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 test1wiersz z gitosis.confkonfiguracji 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 test1repozytorium. Jeśli spróbujesz ponownie sklonować repozytorium, otrzymasz ten sam błąd.

Jeremy Bouse
źródło
5
Następnie możesz usunąć fizyczne repozytoria na serwerze. Zaloguj się, przejdź do katalogu domowego git, stamtąd przejdź do „repozytoriów”, a masz katalogi dla wszystkich swoich repozytoriów. Usuń te, które wyłączyłeś w gitosis.conf.
Eugene Lazutkin
2

Musisz zalogować się do komputera i usunąć tam repozytorium, a następnie usunąć repozytorium z pliku konfiguracyjnego gitosis.

f.ederi.co
źródło
0

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ł suusunąć repozytorium, którego właścicielem jest użytkownik „git”, którego konfigurujesz.

Bryan Kennedy
źródło