Rimuovere il file dal repository ma conservarlo localmente


369

Ho una cartella che vorrei rimuovere nel mio repository remoto. Vorrei eliminarlo, ma conservo la cartella nel mio computer



Ti preghiamo di guardare le domande correlate suggerite mentre scrivi le tue: il duplicato è stato probabilmente uno dei primi due.
Cascabel,


Risposte:


637
git rm --cached -r somedir

Metterà in scena la cancellazione della directory, ma non tocca nulla sul disco. Questo funziona anche per un file, come:

git rm --cached somefile.ext

Successivamente potresti voler aggiungere somedir/o somefile.extal tuo .gitignorefile in modo che git non tenti di aggiungerlo nuovamente.


24
E quindi aggiungi il percorso a .gitignore in modo che git non tenti di farti aggiungere in seguito.
Grossvogel,

3
Ciò comporterà la rimozione di (file nella) directory quando tira dal telecomando?
bstpierre,

Non quando tira; i file rimarranno rimossi localmente durante il processo di unione automatica del pull. Successivamente, un push farà sì che i file vengano rimossi sul lato server.
Walter Mundt,

7
Cosa succede se ho un terzo telecomando? I file corrispondenti verranno rimossi in futuro? Lo chiedo perché ritengo che questo sia un caso d'uso piuttosto comune, vale a dire controllare alcuni file nel repository, rendersi conto in seguito che si discostano tra i telecomandi, per una buona ragione, e non avrebbero mai dovuto essere nel repository in primo luogo, voglio per risolverlo mantenendo tutti i checkout locali esattamente come sono, ma rimuovendo i file dal repository.
Bobby Jack,

6
Per i singoli file, puoi farlogit rm --cached path/to/file
Travis Reeder l'

3

Vorrei solo:

  • Sposta la cartella dall'albero di lavoro
  • git rm la cartella, effettua il commit della modifica
  • Aggiungi a .gitignore(o .git/info/excludes), apporta la modifica
  • Sposta la cartella indietro

8
questa non è una buona soluzione - cosa succede se si dispone di una directory molto grande?
Ioleo,

probabilmente è necessario utilizzaregit rm -r
theUtherSide il

1
@loostro non lo sposta su un altro dispositivo a blocchi. La maggior parte dei file system aggiorna solo l'inode del file e non sposta letteralmente l'intera directory
648trindade,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.