Fjern en fil fra et Git-repositorium uten å slette den fra det lokale filsystemet.

Den første overføringen min inneholdt noen loggfiler. Jeg har lagt *log til .gitignore, og nå vil jeg fjerne loggfilene fra depotet mitt.

git rm mylogfile.log

vil fjerne en fil fra depotet, men vil også fjerne den fra det lokale filsystemet.

Hvordan kan jeg fjerne denne filen fra depotet uten å slette min lokale kopi av filen?

Løsning

Fra man-filen:

Når --cached er gitt, må det iscenesatte innholdet matche enten tuppen av grenen eller filen på disken, slik at filen kan fjernes fra bare indeksen.

Så, for en enkelt fil:

git rm --cached mylogfile.log

og for en enkelt katalog:

git rm --cached -r mydirectory
Kommentarer (8)

Hvis du vil fjerne en hel mappe fra repoen (som Resharper-filer), gjør du dette:

git rm -r --cached folderName

Jeg hadde overført noen resharper-filer, og ville ikke at de skulle vedvare for andre prosjektbrukere.

Kommentarer (1)

Hvis du har overført sensitive data (f.eks. en fil som inneholder passord), bør du også slette dem helt fra historikken i depotet. Her er en veiledning som forklarer hvordan du gjør det: http://help.github.com/remove-sensitive-data/

Kommentarer (2)