Mijn eerste commit bevatte een aantal log bestanden. Ik heb *log
aan mijn .gitignore
toegevoegd, en nu wil ik de logbestanden uit mijn repository verwijderen.
git rm mylogfile.log
zal een bestand uit het archief verwijderen, maar zal het ook van het lokale bestandssysteem verwijderen.
Hoe kan ik dit bestand uit de repo verwijderen **zonder mijn lokale kopie van het bestand te verwijderen?
Van de man file:
Wanneer
--cached
wordt gegeven, moet de geënsceneerde inhoud overeenkomen met ofwel de top van de tak ofwel het bestand op schijf, waardoor het bestand alleen van de index kan worden verwijderd.
Dus, voor een enkel bestand:
git rm --cached mylogfile.log
en voor een enkele directory:
git rm --cached -r mydirectory
Om een hele map uit de repo te verwijderen (zoals Resharper bestanden), doe je dit:
git rm -r --cached folderName
Ik had een aantal resharper bestanden gecommit, en wilde niet dat die zouden blijven bestaan voor andere project gebruikers.
Ook, als je gevoelige data hebt gecommit (b.v. een bestand met wachtwoorden), moet je het volledig verwijderen uit de geschiedenis van het archief. Hier's een gids die uitlegt hoe je dat doet: http://help.github.com/remove-sensitive-data/