2010-08-12 7 views
258

Ho una cartella che vorrei rimuovere nel mio repository remoto. Mi piacerebbe eliminarlo, ma mantenere la cartella nel mio computerRimuovere il file dal repository ma mantenerlo localmente

+3

possibile duplicato di [Git: rimuovere un file dal repository senza cancellandolo dal filesystem locale] (http://stackoverflow.com/questions/1143796/git-remove-a-file-from-the-repository-without-deleting-it-from-the-local-filesys) – Cascabel

+0

Please guarda le domande correlate suggerite mentre stai scrivendo la tua - il duplicato era probabilmente uno dei primi due. – Cascabel

+0

Un altro duplicato: http://stackoverflow.com/questions/1273108/how-do-i-it-rm-a-file-without-deleting-it-from-disk – Cascabel

risposta

462
git rm --cached -r somedir 

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

git rm --cached -r somefile.ext 

In seguito si consiglia di aggiungere somedir/ o somefile.ext al file .gitignore modo che git non tenta di aggiungerlo indietro.

+15

E quindi aggiungi il percorso a .gitignore in modo che git non provi a farti aggiungere in seguito. – grossvogel

+2

Ciò comporterà (file in) la directory che viene rimossa quando estrae dal telecomando? – bstpierre

+0

Non quando tira; i file rimarranno rimossi localmente durante il processo di unione automatica di pull. Dopodiché, un push causerà la rimozione dei file dal lato server. –

5

vorrei solo:

  • Spostare la cartella del vostro albero di lavoro
  • git rm la cartella, il commit della modifica
  • Aggiungi al .gitignore (o .git/info/excludes), il commit della modifica
  • Sposta la cartella indietro
+3

questa non è una buona soluzione - cosa succede se hai una directory molto grande? – loostro

+0

probabilmente ha bisogno di usare 'git rm -r' – theUtherSide