dodaję to do pliku .gitignore
.idea/*
ale tak czy inaczej status to:
# modified: .gitignore
# modified: .idea/.generators
# modified: .idea/dovezu.iml
# modified: .idea/misc.xml
# modified: .idea/workspace.xml
Co ja robię źle ? Dodałem nawet .idea / * do globalnego ~ / .gitignore_global, ale status git, w każdym razie pokazuje mi:
# modified: .gitignore
# modified: .idea/.generators
# modified: .idea/dovezu.iml
# modified: .idea/misc.xml
# modified: .idea/workspace.xml
Odpowiedzi:
Twój
.gitignore
działa, ale nadal śledzi pliki, ponieważ były już w indeksie.Aby temu zapobiec, musisz:
git rm -r --cached .idea/
Po zatwierdzeniu
.idea/
katalog zostanie usunięty z repozytorium git, a następujące zatwierdzenia zignorują.idea/
katalog.PS: Możesz użyć
.idea/
zamiast.idea/*
zignorować katalog. Możesz znaleźć więcej informacji na temat wzorów na tej .gitignore manualu .Pomocny cytat ze strony podręcznika
git-rm
manźródło
.gitignore
a następnie robieniagit rm -cached
?commit
po usunięciu buforowanych plików? To naprawdę wydaje się sprzeczne z intuicją; są to pliki, których NIE chcę zatwierdzać. I nie chcę, aby były usuwane z repozytorium (chcę tylko, żeby nie kręciły się zaśmiecając mojegit status
). Czy po prostu jestem naprawdę zdezorientowany?Do osób, które wciąż szukają tego problemu, patrzą tylko na tę stronę.
Pomoże to usunąć buforowane pliki indeksu, a następnie dodać tylko te, których potrzebujesz, w tym zmiany w
.gitignore
pliku.Oto trochę więcej informacji.
źródło
Rozwiązania oferowane tutaj i w innych miejscach nie działały dla mnie, dlatego dodam do dyskusji dla przyszłych czytelników. Co prawda jeszcze nie w pełni rozumiem tę procedurę, ale w końcu rozwiązałem (podobny) problem i chcę się nim podzielić.
Podczas pracy z git w IntelliJ IDEA w systemie Windows 10 przypadkowo buforowałem niektóre katalogi dokumentów z kilkoma setkami plików, a po dodaniu ich do
.gitignore
(i PRAWDOPODOBNIE przeniesieniu ich trochę) nie mogłem ich usunąć z domyślnej listy zmian.Najpierw popełniłem rzeczywiste zmiany, które wprowadziłem, a potem zająłem się ich rozwiązaniem - zajęło mi to zdecydowanie zbyt długo. Próbowałem
git rm -r --cached .
, ale zawsze siępath-spec
błędy, z różnymi odmianamipath-spec
, jak również z-f
i-r
flagami.git status
nadal pokazywałby nazwy plików, więc spróbowałem użyć niektórych z nich dosłowniegit rm -cached
, ale bez powodzenia. Ukrywanie i odblokowywanie zmian wydawało się działać, ale po pewnym czasie znów stały w kolejce (jestem bardzo zamglony, jeśli chodzi o dokładny czas). W końcu usunąłem te wpisy na dobreZakładam, że jest to DOBRY POMYSŁ, gdy nie ma zmian wprowadzonych / buforowanych, które faktycznie chcesz zatwierdzić.
źródło
Po prostu dodaj
git rm -r --cached <folder_name/file_name>
Czasami aktualizujesz plik .gitignore po komendzie zatwierdzania plików. Pliki są buforowane w pamięci. Aby usunąć buforowane pliki, użyj powyższego polecenia.
źródło
Dodaj Git.
Status Git // Sprawdź plik, który jest modyfikowany
// git reset HEAD --- zamień na plik, który chcesz zignorować
git reset HEAD .idea / <- Ci, którzy chcieli wykluczyć .idea przed zatwierdzeniem // git sprawdź status i plik pomysłu zniknie, i jesteś gotowy!
git commit -m ''
git push
źródło