Mano pradiniame įsipareigojime buvo keletas žurnalo failų. Į savo .gitignore
įrašiau *log
, o dabar noriu pašalinti žurnalo failus iš savo saugyklos.
git rm mylogfile.log
pašalinsite failą iš saugyklos, bet taip pat pašalinsite jį ir iš vietinės failų sistemos.
Kaip galiu pašalinti šį failą iš saugyklos nepašalindamas savo vietinės failo kopijos?
Iš [man failo] (https://git-scm.com/docs/git-rm):
Kai nurodomas --cached
, etapinis turinys turi atitikti arba šakos galą, arba failą diske, todėl failas gali būti pašalintas tik iš indekso.
Taigi, vieno failo atveju:
git rm --cached mylogfile.log
ir vienam katalogui:
git rm --cached -r mydirectory
Jei norite iš saugyklos pašalinti visą aplanką (pvz., "Resharper" failus), atlikite šiuos veiksmus:
git rm -r --cached folderName
Buvau atidavęs keletą "Resharper" failų ir nenorėjau, kad jie išliktų kitiems projekto naudotojams.
Be to, jei įtraukėte slaptus duomenis (pvz., failą su slaptažodžiais), turėtumėte juos visiškai ištrinti iš saugyklos istorijos. Čia rasite vadovą, kuriame paaiškinta, kaip tai padaryti: http://help.github.com/remove-sensitive-data/