Permalänk
Medlem

Git problem

Hej. Skulle ladda upp en uppgift på git och trodde man skulle ange sökvägen desktop/index.html men när jag gjorde detta så blev det så att git tog hela desktop sökvägen inkl mina privata filer/bilder/textfiler och systemfiler. Doch Inget som jag commita så att det blev uppladdat, tror att de bara blev "untracked".
Så när jag öppnar upp VScode så får jag typ "5k unchanged changes" dvs mina privata filer. Detta var störande och ville ta bort mina privata filer som git höll koll på.

Efter lite googlande så förstod jag det som om att det går att ta bort dessa filer från Gits system, så jag började radera filer i GIT CMD terminalen med commands som GIT clean -f osv och andra olika bokstavskombinationer. Sagt och gjort så började jag spamma dessa kombinationer och sen när jag tabba ner till skrivbordet så ser jag till min förskräckelse att alla mina filer är borta. För mig, viktiga filer och bilder. Nu vet jag inte hur jag kan få tillbaks alla mina filer och återställa allt som det var. Försökt använda RECUVA för att återställa raderade filer men bilderna går inte ens att öppna på detta sätt. Tog även bort systemfiler och bokmärken och typ hela köret nästan, förutom program som redan var under använding.

Ni som är duktiga på GIT. Vad kan jag göra?

Permalänk
Medlem

Inte säker på hur du får tillbaka dina filer, men i framtiden ta bort den osynliga .git mappen bara, den innehåller ditt lokala repo och spårar dina filer

Permalänk
Medlem

Om du har tur har du gamla commits med alla filer kvar.
testa att göra "git log --graph --decorate --oneline"
då kommer git rita upp alla commits du har och dess "hash"
Ifall du ser en commit som du känner "här borde filerna finnas kvar" kan du göra "git checkout f4ae753" till exempel där f4ae753 är commit hashen

Lägg gärna upp en bild på git log hur det ser ut

Permalänk
Medlem
Skrivet av Xenofonus:

Inte säker på hur du får tillbaka dina filer, men i framtiden ta bort den osynliga .git mappen bara, den innehåller ditt lokala repo och spårar dina filer

Tack för ditt snabba svar. Detta har jag förstått, största problemet är hur jag kan få tillbaks alla mina filer :/

Permalänk
Medlem

@Stavalol: om det är väldigt viktiga filer för dig hade jag kontaktat ett företag som erbjuder tjänster som återskapar/återhämtar förlorad data.

Permalänk
Medlem

@Stavalol: Ojoj, detta var tråkigt att höra. Det låter som att du har gjort ett Git-repo utav hela ditt filsystem, och sedan börjat ta bort filer. Kommandot git clean tar bort filer som Git inte håller koll på (untracked) från det s.k. working tree, dvs, det raderar filer från ditt faktiska filsystem.

Om du aldrig lagt till filerna i Git-repot (dvs med git add) så finns det ingenting du kan göra med Git för att få tillbaka dem. Då är det just diskåterställningsprogram (ex. RECUVA) du måste använda.

Som nämnt ovan, lämna in till något företag som håller på med dataåterställning om det är mycket viktiga filer. Och sluta använda datorn för att inte riskera att skriva över data. Kanske kan någon som är lite mer haj på dataåterställning på Windows (som jag antar att du kör då du använde RECUVA) komma med något annat tips, det är inte riktigt mitt område.

Permalänk
Medlem

@Stavalol: Hade du initialt någon commit incheckat i repot? Dv.s har du satt upp ett repo och checkat in något till master? Eller arbetade du enbart lokalt?

Skulle du kunna köra en en git log --stat ?
Alternativt också en git reflog --all ?

Om du får fram en lista med commits och ser att du tagit bort filer så finns det eventuellt möjlighet att återställa till viss del.

Tyvärr är det så att git clean tar bort alla filer som inte spåras av git och det finns då ingen möjlighet att återställa dem.

Har du någon systemåterställning av Windows där du kan återgå till en äldre version? Detta brukar göras i samband med Windows Update om man själv inte har skapat restore points. Var det länge sen så är det dock inte säkert att du får tillbaka alla filer du önskar.

Permalänk
Medlem

Hoppas du löser det, men för framtiden så är det git reset filnamn du ska använda om du vill ta bort en fil från staging som du råkat lägga till utan att commit:a.

Permalänk
Medlem
Skrivet av zaibuf:

@Stavalol: Hade du initialt någon commit incheckat i repot? Dv.s har du satt upp ett repo och checkat in något till master? Eller arbetade du enbart lokalt?

En commit är ju optimalt, men det räcker med att filerna lagts till (dvs med add), för då hamnar de som blobbar i den lokala objektdatabasen. Man kan inte finna filernas namn endast från blobbar, men filerna i sig är lätta att återställa. Men baserat på TS beskrivning låter det inte som att denne gjort något annat än att initialisera ett Git-repo och sedan börja rensa filsystemet.

Permalänk
Medlem
Skrivet av zaibuf:

@Stavalol: Hade du initialt någon commit incheckat i repot? Dv.s har du satt upp ett repo och checkat in något till master? Eller arbetade du enbart lokalt?

Skulle du kunna köra en en git log --stat ?
Alternativt också en git reflog --all ?

Om du får fram en lista med commits och ser att du tagit bort filer så finns det eventuellt möjlighet att återställa till viss del.

Tyvärr är det så att git clean tar bort alla filer som inte spåras av git och det finns då ingen möjlighet att återställa dem.

Har du någon systemåterställning av Windows där du kan återgå till en äldre version? Detta brukar göras i samband med Windows Update om man själv inte har skapat restore points. Var det länge sen så är det dock inte säkert att du får tillbaka alla filer du önskar.

Gjorde som du sa, står 1 file changed, 12 insertions och med plustecken.
Sen så ser jag resets, moving to head osv.
Och så ser jag en commit också bl.a.

Uppskattar alla svar som jag fått hittills.

Funderar på att nollställa hela datorn snart efter jag kopierat det jag återskapade med recuva. Datorn får fel meddelanden efter att vissa program slutat fungera på grund av borttagning av systemfiler osv.. Dock så går det ej att öppna bilderna då det står "det verkar inte finnas stöd för filsystemet" :/

@Zaibuf. Ingen säkerhetskopia nej tyvärr.