2010-08-12 19 views
258

Mam folder, który chciałbym usunąć w moim zdalnym repozytorium. Chciałbym, aby go usunąć, ale zachować folder w komputerzeUsuń plik z repozytorium, ale zachowaj lokalnie

+3

możliwy duplikat [Git: Usuń plik z repozytorium bez usuwanie go z lokalnego systemu plików] (http://stackoverflow.com/questions/1143796/git-remove-a-file-f--repository-without-deleting-it-f--local-filesys) – Cascabel

+0

Proszę spójrz na sugerowane powiązane pytania podczas pisania twojego - duplikat był prawdopodobnie jednym z pierwszych dwóch. – Cascabel

+0

Kolejny duplikat: http://stackoverflow.com/questions/1273108/how-do-i-git-rm-a-file-without-deleting-it-from-dod – Cascabel

Odpowiedz

462
git rm --cached -r somedir 

zorganizuje usunięcie katalogu, ale nie dotykać czegokolwiek na dysku. Działa to również w przypadku pliku, takie jak:

git rm --cached -r somefile.ext 

Następnie możesz dodać somedir/ lub somefile.ext do pliku .gitignore tak że git nie próbuje dodać go ponownie.

+15

A następnie dodaj ścieżkę do .gitignore, więc git nie próbuje dodać go później. – grossvogel

+2

Czy spowoduje to usunięcie katalogu podczas pobierania ze zdalnego? – bstpierre

+0

Nie kiedy pociągnie; pliki pozostaną usunięte lokalnie podczas procesu automatycznego łączenia. Następnie naciśnięcie spowoduje usunięcie plików po stronie serwera. –

5

ja po prostu:

  • Przenieś folder z drzewa roboczego
  • git rm folderu popełnić zmianę
  • Dodaj do .gitignore (lub .git/info/excludes), popełnić zmiana
  • Move folder z powrotem
+3

to nie jest dobre rozwiązanie - a co jeśli masz bardzo duży katalog? – loostro

+0

prawdopodobnie trzeba użyć 'git rm -r' – theUtherSide

Powiązane problemy