Jak usunąć bardzo duże repozytorium .git?

Jak usunąć bardzo duże repozytorium .git?
DS
  • Rejestracja:ponad 2 lata
  • Ostatnio:4 miesiące
  • Postów:41
0

Dzień dobry, posiadam VPS z ubuntem 20.04 LTS. Kiedyś na maszynce zainstalowałem git (apt install git), na VPS mam 320GB ostatnio zabrałem się za oczyszczanie serwera bo mam już zajęcie w 80%, i zauważyłem ze w folderze /etc mam folder .git(/etc/.git) który zajmuje prawie 100GB tak jak bym kiedyś przez przypadek stworzył rego które chyba tworzy backup całego systemu bo aż tyle zajmuje miejsca... Odinstalowałem git (apt remove git) następnie ponownie zainstalowałem gita lecz folder nadal tam jest, mogę go po prostu tak sobie usunąć?

edytowany 1x, ostatnio: Riddle
szatkus1
  • Rejestracja:około 22 lata
  • Ostatnio:około 6 godzin
2

Folder .git/ to po prostu folder z metadanymi repozytorium gitowego. Co oznacza, że z jakiegoś powodu /etc jest repozytorium. Przed usunięciem to bym najpierw sprawdził .git/config, żeby się dowiedzieć, skąd to się wzięło.

edytowany 1x, ostatnio: Riddle
mustang_ex
Katalog systemowy repozytorium? Jeszcze dodaj że repo jest publiczne........Halo, nie ćpaj tyle ;)
99xmarcin
etc to katalog z kofniguracją, może ktoś przekozaczył i pomyślał sobie że będzie wersjonował konfigurację systemu? Nie jest to zupełnie oderwane od rzeczywistości...
DS
  • Rejestracja:ponad 2 lata
  • Ostatnio:4 miesiące
  • Postów:41
0

W configu mam

Kopiuj
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
edytowany 1x, ostatnio: Riddle
Marius.Maximus
  • Rejestracja:ponad 14 lat
  • Ostatnio:dzień
  • Postów:2100
1

Do odważnych świat należy !
Kasuj !

ewentualnie w folderze /etc polecenie git log może Cię natchnie skad to sie wzielo


--
Nie przyjmuję reklamacji za moje rady, używasz na własną odpowiedzialność.
Programowanie bez formatowania to jak chodzenie ze spodniami spuszczonymi na kostki. Owszem da się ale po pierwsze nie wygodne, po drugie nieprzyzwoicie wygląda.
Przed zaczęciem nowego wątku przeczytam problem XY
DS
  • Rejestracja:ponad 2 lata
  • Ostatnio:4 miesiące
  • Postów:41
0

No właśnie co to jest i skąd mogło się wziąć? Ja nigdy nie robiłem ręcznie repo... Jedynie co się domyślam to może podczas instalowania panelu do zarządzania serwera kilka ich testowałem ostatecznie pozostałem przy webmin virtualmin.

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:Koszalin
  • Postów:10094
0
dsxsoft napisał(a):

No właśnie co to jest i skąd mogło się wziąć? Ja nigdy nie robiłem ręcznie repo... Jedynie co się domyślam to może podczas instalowania panelu do zarządzania serwera kilka ich testowałem ostatecznie pozostałem przy webmin virtualmin.

Coś albo ktoś musiało stworzyć w /etc repozytorium gitowe. Ja obstawiam że to był ktoś, który zrobił git clone albo git init.

Masz dwie opcje:

  • Albo usuń w p*.
  • Albo dowiedz się skąd to się wzięło:
    • Możesz np wykonać cd /etc oraz git remote, żeby sprawdzić czy są jakieś remote'y. Jak są (np znajdziesz origin), to zrób git remote get-url origin - może to Ci podpowie skąd się repo wzięło
    • Jak nie ma remoteów, to sprawdź git log, i zobacz kto albo co tam coś commitowało. Jak nie ma żadnych commit'ów, to możesz spokojnie usuwać.
mustang_ex
  • Rejestracja:ponad rok
  • Ostatnio:10 dni
  • Postów:98
0

@Riddle razem z @szatkus1: kurde zacny towar milordy. Repo w katalogu systemowym oraz sugerowanie usunięcia owego katalogu? Nie no, informatycy first-class......
@dsxsoft: stailuj sobie git log do ostatnich 10-20 rekordów, wrzuć wynik do pliku a plik do jakiegoś parsera (polecam sed) porównuj LBL........

edytowany 1x, ostatnio: mustang_ex
SL
Repo w katalogu systemowym oraz sugerowanie usunięcia owego katalogu? wszyscy wiedzą, że chodzi o usunięcie /etc/.git, nie troluj
obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:24 minuty
3

Zapewne sobie zainstalowałeś etckeeper, sprawdź czy masz folder /etc/etckeeper
https://ubuntu.com/server/docs/tools-etckeeper
I po prostu usuń jak nie potrzebujesz albo przez

sudo etckeeper uninit

Być może miałeś go out of the box w obrazie z którego instalowałeś system na vps bo cytując wyżej wymienioną stronkę:

Placing /etc under version control is considered an industry best practice

W sumie pierwsze słyszę ale ma to sens żeby szybko naprawić swoje pomyłki. Jak chcesz to zachować ale zmniejszyć rozmiar to możesz usunąć i zainicjować od zera, stracisz historię zmian i możliwość powrotu do starej konfiguracji ale jeśli teraz wszystko działa to ok.

mustang_ex napisał(a):

@dsxsoft: stailuj sobie git log do ostatnich 10-20 rekordów, wrzuć wynik do pliku a plik do jakiegoś parsera (polecam sed) porównuj LBL........

Porównuj z czym?
Nie no koleś ma własny prywatny VPS, utworzył sobie repo przypadkiem pewnie którego nie używa a ty mu każesz to przeglądać nie wiadomo po co


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
edytowany 5x, ostatnio: Riddle
99xmarcin
  • Rejestracja:około 5 lat
  • Ostatnio:6 miesięcy
  • Postów:2420
0

Jeżeli o rozmiar chodzi to zawsze można jeszcze dać git gc
Wątpię jednak żeby udało się wiele zaoszczędzić.


Holy sh*t, with every month serenityos.org gets better & better...
mustang_ex
o ile zejdzie z rozmiarem: .5MB? Bez sensu
99xmarcin
Eksperyment musi odpowiedzieć na to pytanie, inaczej się nie dowiesz ile zejdzie....
mustang_ex
@0xmarcin: owszem, aczkolwiek jeśli zjazd by był < 1mb to szkoda fatygi
mustang_ex
  • Rejestracja:ponad rok
  • Ostatnio:10 dni
  • Postów:98
0

Placing /etc under version control is considered an industry best practice

@obscurity no, zajebista praktyka.... taka nie za bardzo zgodna z przepisami (GDPR) ale w sumie kogo to interesuje, co? 😄

edytowany 1x, ostatnio: Riddle
obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:24 minuty
2
mustang_ex napisał(a):

Placing /etc under version control is considered an industry best practice

@obscurity no, zajebista praktyka.... taka nie za bardzo zgodna z przepisami (GDPR) ale w sumie kogo to interesuje, co? 😄

trzymasz dane klientów w etc czy co? Przecież to lokalne repo, co to zmienia


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
edytowany 1x, ostatnio: obscurity
mustang_ex
  • Rejestracja:ponad rok
  • Ostatnio:10 dni
  • Postów:98
0
obscurity napisał(a):
mustang_ex napisał(a):

Placing /etc under version control is considered an industry best practice

@obscurity no, zajebista praktyka.... taka nie za bardzo zgodna z przepisami (GDPR) ale w sumie kogo to interesuje, co? 😄

trzymasz dane klientów w etc czy co? Przecież to lokalne repo, co to zmienia

Nie tylko dane klientów są chronione GDPR em..... /etc zawiera pliki konfiguracyjne systemu jak i różnych jego składowych, które, z kolei, zawierają (bądź mogą zawierać) dane wrażliwe jak adresy IP sieci wewnętrznej, dane dostępowe do różnych aplikacji webowych intranetowych itp.

obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:24 minuty
2
mustang_ex napisał(a):

Nie tylko dane klientów są chronione GDPR em..... /etc zawiera pliki konfiguracyjne systemu jak i różnych jego składowych, które, z kolei, zawierają (bądź mogą zawierać) dane wrażliwe jak adresy IP sieci wewnętrznej, dane dostępowe do różnych aplikacji webowych intranetowych itp.

Pomijając że IP sieci wewnętrznej to raczej nie są dane podlegające ochronie przez GDPR to jak zrobisz ich kopie w tym samym folderze obok to nagle łamane jest prawo?


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
edytowany 1x, ostatnio: obscurity
Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
3

jeśli repozytorium .git łamie gdpr/rodo, to w takim razie automatyczne backupy, przywracanie systemu i snapshoty dyskowe również, czyż nie? gitowy commit to nic innego jak snapshot repozytorium.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 3x, ostatnio: Wibowit
mustang_ex
  • Rejestracja:ponad rok
  • Ostatnio:10 dni
  • Postów:98
0

gitowy commit to nic innego jak snapshot repozytorium.

@Wibowit chyba w to nie wierzysz, co?

Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
6
mustang_ex napisał(a):

gitowy commit to nic innego jak snapshot repozytorium.

@Wibowit chyba w to nie wierzysz, co?

precyzując: gitowy commit to snapshot repozytorium + metadane o commicie + hashe parentów (dwa dla merge'a lub jeden dla zwykłego commita). to, że zajętość dyskowa nie rośnie wprost proporcjonalnie z liczbą commitów i rozmiarem repozytorium podczas robienia tych commitów jest efektem tego, że git deduplikuje dane. trochę podobnie jest np. w systemie plików btrfs - tam też możesz zrobić snapshot w czasie O(1) i nie powoduje on nagłego zwiększenia zajętości miejsca na dysku.

tu nie ma miejsca na wiarę czy niewiarę. wystarczy sprawdzić co czym jest.

jeśli chcesz wyjaśnienie działania gita od kogoś innego niż zwykłego forumowicza to zapraszam na blog firmy github: https://github.blog/2020-12-17-commits-are-snapshots-not-diffs/ . wydaje mi się, że znają się dobrze na gicie.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 2x, ostatnio: Wibowit
mustang_ex
  • Rejestracja:ponad rok
  • Ostatnio:10 dni
  • Postów:98
0

precyzując: gitowy commit to snapshot repozytorium + metadane o commicie + hashe parentów (dwa dla merge'a lub jeden dla zwykłego commita)

@Wibowit i teraz masz rację 😀

obscurity
troll czy z orzeczeniem?
mustang_ex
@obscurity co to ma kurna do rzeczy? Jeśli chcesz wiedzieć to tak; mam orzeczenie o niepełnosprawności z uwagi na niepełnosprawność ruchową, nie wstydzę się tego (bo nie ma czego). Aczkolwiek nadal nie obczajam co to ma forum IT? Jeśli podajesz definicję to albo w całości albo w ogóle.
obscurity
napisałeś "chyba w to nie wierzysz" jak napisał że commit to w zasadzie snapshot, a jak dopisał że precyzując zawiera jeszcze metadane to napisałeś że "teraz masz rację" więc opcje są trzy a) trollujesz b) przeczytałeś w końcu czym jest commit i głupio ci się przyznać do błędu więc udajesz że chodziło ci o metadane co nie ma żadnego sensu bo nie ma znaczenia w tym temacie albo c) nie tylko ruchową
mustang_ex
@obscurity co do pkt c. To że mówię o sobie otwarcie nie oznacza że dam się obrażać.
Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
1
mustang_ex napisał(a):

precyzując: gitowy commit to snapshot repozytorium + metadane o commicie + hashe parentów (dwa dla merge'a lub jeden dla zwykłego commita)

@Wibowit i teraz masz rację 😀

dobry blef. to jest oczywiste, że commit ma metadane (jak opis, autora czy datę) oraz, że commity tworzą historię commitów zawierającą także merge, ale snapshot repozytorium to główna i najważniejsza część commita. każdy widział te metadane i każdy widział historię commitów. jednak nie każdy wie, że każdy gitowy commit zawiera snapshot repozytorium, a nie śledzi bezpośrednio zmian w plikach (te są wyliczane dynamicznie podczas porównania snapshotów, gdy zachodzi taka potrzeba).

może mam jeszcze doprecyzowywać na każdym kroku, że woda jest mokra, bo inaczej 'nie uwierzysz' we właściwości wody?


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 3x, ostatnio: Wibowit

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.