Mój .gitignore
plik z jakiegoś powodu nie działa i żadna liczba Googlingów nie była w stanie go naprawić. Oto co mam:
*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log
Jest w katalogu master
, który jest moim repozytorium git. Korzystam z Git 1.8.4.2, ponieważ korzystam z MacBooka z systemem OSX 10.8.6.
/bin/
folder nadal pokazuje, kiedy robięgit status
. Nie zmieniłem tych plików, odkąd dodałem.gitignore
Odpowiedzi:
Pliki / folder w twojej kontroli wersji nie usuwają się tylko dlatego, że dodałeś je do
.gitignore
. Są już w repozytorium i musisz je usunąć. Możesz to po prostu zrobić w ten sposób:( Pamiętaj, aby zatwierdzić wszystko, co zmieniłeś, zanim to zrobisz ).
To usuwa wszystkie pliki z repozytorium i dodaje je z powrotem (tym razem przestrzegając reguł w twoim
.gitignore
).źródło
git ignore path/file
w dowolnym momencie.Aby wyśledzić pojedynczy plik, który został już dodany / zainicjowany do repozytorium, tj. Przestań śledzić plik, ale nie usuń go z systemu:
git rm --cached filename
Aby wyśledzić każdy plik, który jest teraz w
.gitignore
:Najpierw zatwierdź wszelkie zaległe zmiany kodu, a następnie uruchom następującą komendę:
Spowoduje to usunięcie wszystkich zmienionych plików z indeksu (obszaru przejściowego), a następnie wystarczy uruchomić:
Zatwierdź to:
źródło
Po zejściu trochę z króliczej nory, próbując podążać za odpowiedziami na to pytanie (być może dlatego, że musiałem to zrobić w projekcie studia wizualnego), uznałem, że łatwiejszą drogą było
Wytnij i wklej plik (i), których nie chcę już śledzić w lokalizacji tymczasowej
Zatwierdź „usunięcie” tych plików
Wprowadź modyfikację,
.gitignore
aby wykluczyć pliki, które zostały tymczasowo przeniesionePrzenieś pliki z powrotem do folderu.
Uważam, że jest to najprostszy sposób, aby to zrobić (przynajmniej w studio wizualnym, lub założyłbym inne środowisko oparte na falowaniu IDE, takie jak Android Studio), bez przypadkowego strzelania sobie w stopę z dość wszechobecną
git rm -rf --cached .
, po czym projekt studia wizualnego, nad którym pracowałem, nie został załadowany.źródło
W moim przypadku była to pusta przestrzeń na początku pliku, która wyraźnie pokazywała się, gdy otworzyłem plik w Notatniku, nie było to oczywiste w programie Visual Studio Code.
źródło
Użyłem czegoś do wygenerowania wspólnego
.gitignore
dla mnie i wpadłem na to. Po przeczytaniu odpowiedzi @Ozesh otworzyłem w kodzie VS, ponieważ ma ładny wskaźnik w prawym dolnym rogu, pokazujący rodzaj zakończeń linii. To był LF, więc przekonwertowałem na CRLF, jak sugerowałem, ale żadnych kości.Potem spojrzałem obok zakończeń linii i zauważyłem, że został zapisany za pomocą UTF16. Więc zapisałem ponownie używając UTF8 kodującego voila, zadziałało. Nie sądziłem, że CRLF ma znaczenie, więc dla pewności zmieniłem go z powrotem na LF i nadal działa.
Oczywiście nie był to problem z PO, ponieważ już dokonał plików, więc zostały one już zindeksowane, ale pomyślałem, że podzielę się nimi na wypadek, gdyby ktoś inny się z tym natknął.
TLDR ; Jeśli jeszcze nie zatwierdziłeś plików, a .gitignore nadal nie jest przestrzegany, sprawdź kodowanie plików i upewnij się, że jest to UTF8, a jeśli to nie zadziała, może spróbuj zadzwonić z zakończeniami linii.
źródło
W moim przypadku przyczyną były białe spacje na końcu linii .gitignore. Uważaj więc na białe znaki w .gitignore!
źródło
Rozwiązałem problem, wykonując następujące czynności:
Przede wszystkim jestem użytkownikiem systemu Windows, ale napotkałem podobny problem. Więc zamieszczam tutaj moje rozwiązanie.
Jest jeden prosty powód, dla którego czasami .gitignore nie działa tak, jak powinien. Wynika to z zachowania konwersji EOL.
Oto szybkie rozwiązanie tego problemu
Edycja> Konwersja EOL> Format Windows> Zapisz
Możesz za to winić ustawienia edytora tekstu .
Na przykład:
Jako programista systemu Windows zazwyczaj używam Notatnika ++ do edycji tekstu, w przeciwieństwie do użytkowników Vima.
Tak się dzieje, gdy otwieram plik .gitignore za pomocą Notepad ++, wygląda to tak:
Jeśli otworzę ten sam plik za pomocą domyślnego Notatnika, otrzymam to
Być może już zgadłeś, patrząc na wynik. Wszystko w .gitignore stało się jednowierszowym, a ponieważ na początku jest ##, działa tak, jakby wszystko było komentowane.
Sposób rozwiązania tego jest prosty: wystarczy otworzyć plik .gitignore w Notepad ++, a następnie wykonać następujące czynności
Edycja> Konwersja EOL> Format Windows> Zapisz
Przy następnym otwarciu tego samego pliku w domyślnym notatniku systemu Windows wszystko powinno być odpowiednio sformatowane. Wypróbuj i sprawdź, czy to Ci odpowiada.
źródło
Ponadto komentarze muszą być na własnej linii. Nie można ich umieścić po wejściu. Więc to nie zadziała:
Ale to zadziała:
źródło
Czy
git reset --hard
działa dla kogoś? Nie twierdzę, że to dobre rozwiązanie, po prostu wydawało się, że działa po raz pierwszy.źródło
Popełniłem wielki błąd podczas edycji mojego dockerignore, działałem świetnie po znalezieniu odpowiedniego pliku zignorowania: p
źródło
Dodanie mojego kawałka, ponieważ jest to popularne pytanie.
Nie mogłem umieścić katalogu .history wewnątrz .gitignore, ponieważ bez względu na to, jakiej kombinacji próbowałem, po prostu nie działało. System Windows generuje nowe pliki przy każdym zapisie i nie chcę ich wcale widzieć.
Ale potem zdałem sobie sprawę, że to tylko moje osobiste środowisko programistyczne na moim komputerze. Rzeczy takie jak .history lub .vscode są dla mnie specyficzne, więc byłoby dziwnie, gdyby każdy umieścił własne wpisy .gitignore na podstawie używanego IDE lub systemu operacyjnego.
Więc to zadziałało dla mnie, po prostu dodaj „.history” do .git / info / exclude
źródło