.gitignore jest ignorowany przez Git

1509

Mój .gitignoreplik wydaje się być ignorowany przez Git - czy .gitignoreplik może być uszkodzony? Jakiego formatu pliku, ustawień regionalnych lub kultury oczekuje Git?

Mój .gitignore:

# This is a comment
debug.log
nbproject/

Wyjście z git status:

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       debug.log
#       nbproject/
nothing added to commit but untracked files present (use "git add" to track)

Chciałbym debug.logi nbproject/nie pojawiać się na liście nieśledzonych plików.

Gdzie powinienem zacząć to naprawiać?

Matt Parkins
źródło
56
Upewnij się, że .gitignoreplik używa ANSIlub UTF-8koduje. Jeśli używa czegoś innego Unicode BOM, Git nie może odczytać pliku.
ADTC
8
@ ADTC to był dokładnie problem na moim komputerze (Windows). Użyłem echo "file" > .gitignorew PowerShell, plik miał kodowanie UCS-2!
MarioDS,
7
git rm --cached debug.log nbproject/
Gayan Weerakutti
4
Dlaczego pierwszy komentarz tutaj nie jest odpowiedzią, jest poza mną
RedOrav
2
@MattParkins Ach, widzę to teraz, wciąż mnie zaskakuje, że tak prosta i konkretna odpowiedź jest zakopana jako komentarz lub że tam faktycznie przyjęta jest odpowiedź. Dzięki!
RedOrav,

Odpowiedzi:

3115

Nawet jeśli do tej pory nie śledziłeś plików, Git wydaje się być w stanie o nich wiedzieć nawet po ich dodaniu .gitignore.

OSTRZEŻENIE: Najpierw zatwierdź swoje bieżące zmiany, inaczej je stracisz.

Następnie uruchom następujące polecenia z górnego folderu repozytorium Git:

git rm -r --cached .
git add .
git commit -m "fixed untracked files"
Alin Huruba
źródło
8
Otrzymałem „use: git rm [opcje] [-] <plik> ...”, gdy wypróbowałem „git rm -r --cached”. Jeśli to ma znaczenie, używam Git z poziomu PowerShell po kliknięciu „Narzędzia-> Otwórz tutaj powłokę” w GitHub dla Windows.
Soonts
61
w systemie Windows: git rm. -r - buforowane i git dodaj.
Beachhouse
90
Pamiętaj, aby wcześniej zatwierdzić wszystkie zmiany, w przeciwnym razie stracisz kontrolę nad wszystkimi zmienionymi plikami !!
Cosmin,
45
Wydaje się, że pierwszych 3 komentujących na końcu nie trafiło w kropkę. Oznacza to każdy plik. „git -rm -r --cached.” <- zauważ kropkę.
Christophe De Troyer
18
Jeśli nie chcesz zatwierdzać, obejście polega na umieszczeniu zmian na półce: „git stash”. Uruchom powyższe polecenia. i uruchom „git stash pop”
Ivan Voroshilin
335

Jeśli wydaje się, że Git nie zauważa zmian dokonanych w .gitignorepliku, możesz sprawdzić następujące punkty:

  • Może istnieć .gitignoreplik globalny , który może kolidować z plikiem lokalnym
  • Kiedy dodajesz coś do pliku .gitignore, spróbuj tego:

    git add [uncommitted changes you want to keep] && git commit
    git rm -r --cached .
    git add .
    git commit -m "fixed untracked files"
    
  • Jeśli usuniesz coś z pliku .gitignore i powyższe kroki mogą nie działać, jeśli zauważysz, że powyższe kroki nie działają, spróbuj tego :

    git add -f [files you want to track again]
    git commit -m "Refresh removing files from .gitignore file."
    
    // For example, if you want the .java type file to be tracked again,
    // The command should be:
    //     git add -f *.java
    
ifeegoo
źródło
3
Być może mógłbyś edytować odpowiedź @AlinHuruba, aby dodać swój krok 3?
Benj
@Benj Dziękuję za radę, nie znalazłem odpowiedzi AlinHuruba, nie wiedziałem, jaka jest różnica, więc proszę powiedz mi bezpośrednio.
ifeegoo
2
Potrzebowałem kroku 3. Większość odpowiedzi mówi tylko, jak usunąć plik, który chcemy wyśledzić. Dzięki za przeciwny punkt widzenia.
Yeung,
Mam nadzieję, że to ci pomoże!
ifeegoo,
7
git rm -r --cached .pracował dla mnie
Jason
197

Naprawiony. OK, utworzyłem plik .gitignore w Notatniku w systemie Windows i nie działał. Kiedy przeglądałem plik .gitignore w systemie Linux, wyglądał jak zorganizowany bełkot - być może Notatnik napisał Unicode zamiast ASCII lub cokolwiek 8-bitowego.

Więc przepisałem plik na moim Linux-ie, a kiedy ściągnąłem go z powrotem do systemu Windows, działa dobrze! Hurra!

Matt Parkins
źródło
77
W Notatniku wystarczy wybrać kodowanie „ANSI” w oknie dialogowym „Zapisz jako”. Albo jeszcze lepiej, uzyskaj odpowiedni edytor tekstu - w końcu jesteś programistą :) ... mogę polecić „Programmer's Notepad”, inni wolą Notepad ++, a jest ich dosłownie setki.
0xC0000022L
1
hehe, tak, powinienem był go stworzyć w netbeans (którego wtedy używałem), zaćmieniu lub w studiu wizualnym. Właśnie nazwałem to z wiersza poleceń, myśląc, że to nie ma znaczenia.
Matt Parkins,
8
Mój problem był podobny - mój .gitignore używał UTF8 z BOM . Właśnie zapisałem go jako UTF8 bez BOM i magicznie zaczął działać.
Phil
13
To był również mój problem. Utworzyłem plik .gitignore z opcją „echo dirName> .gitignore”, ponieważ system Windows sprawia, że ​​tworzenie plików zaczynających się od „.” Jest tak uciążliwe. Utworzone w ten sposób kodowanie pliku było nieczytelne przez git i zinterpretowało go jako plik binarny. Kliknij „Kodowanie -> UTF-8” w Notepad ++, zapisz, gotowe.
Laura,
4
Miał ten sam problem co @Laura w PowerShell - plik jest domyślnie zapisywany jako UTF16.
mrówa
113

Bez dodawania kolejnego zatwierdzenia do projektu wystarczy jedna linia, aby wykonać .gitignorepracę tak, jak powinna:

git rm -r --cached debug.log nbproject

Spowoduje to usunięcie ich z repozytorium, ale nadal pozostanie fizycznie. Mówiąc wprost, usuwa historię zmian związanych z nimi, a także nie śledzi ich zmian w żadnym późniejszym zatwierdzeniu. Możesz znaleźć lepsze wyjaśnienie tutaj .

H Aßdøµ
źródło
1
Działało dokładnie tak, jak chciałem - miałem tylko 1 plik, który nie był odpowiednio śledzony. git rm -r --cached someFile.php
Zapisałem
@FMFF Spowoduje to usunięcie go z repozytorium, ale nadal pozostanie fizycznie, w prostym języku angielskim, usunie historię zmian związanych z nimi, a także nie będzie śledzić ich zmian w żadnym przyszłym zatwierdzeniu. Lepsze wyjaśnienie można znaleźć tutaj: stackoverflow.com/questions/37279654/…
H Aßdøµ
Dostałem komunikat „fatal: pathspec 'debug.log' nie pasował do żadnych plików”
Michael
45

Inną przyczyną tego problemu są puste spacje lub tabulatory przed instrukcją:

Przykład:

# Be aware of the following:
 notWorkingIgnore.*
workingIgnore.*

I jak wskazano w komentarzu poniżej, spacją może być również problem:

# Be aware of the following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace
Rawa
źródło
11
Problem stanowiły końcowe kropki, które są jeszcze trudniejsze do znalezienia.
amr
3
miał również problem z końcowymi spacjami.
Trefex
3
Tak, to samo tutaj. Myślałem, że mogę pisać komentarze na wzór pliku: *.txt # Tex files. Ale git rozumie: „Zignoruj ​​pliki z rozszerzeniem txt
Adam Libuša
3
Moje słowo zajęło mi 2 dni, aby znaleźć 15 pozytywnych odpowiedzi. To zasługuje na więcej.
fordcars 21.04.16
2
Właśnie rozwiązałeś problem, który miałem od miesięcy ... Dziękuję!
Arkellys,
36

Zauważyłem, że kodowanie .gitignoremiało wpływ - jeśli plik był Unicode, był ignorowany, jeśli był to ASCII, nie był.

Proces:

  1. Sprawdź status: PS> git status
  2. Utwórz funkcję do Get-FileEncoding
  3. .gitignoreKodowanie testu :PS> Get-FileEncoding .gitignore
  4. Zmień kodowanie na ASCII:PS> Set-Content .gitignore -Encoding Ascii -Value (Get-Content .gitignore)
  5. Potwierdzać: PS> git status
Craig
źródło
5
1000 dzięki za to. Tworzyłem plik .gitignore w moim systemie za pomocą polecenia touch .gitignorei echo ".db" >> .gitignoretrasowania za pomocą programu PowerShell. Odkryłem, że echo ".db" >> .gitignore"ustawiałem kodowanie pliku na UCS-2 LE-BOM, szybka konwersja do ASCII i gitignore zaczął działać.
B-Rad
2
Możesz spróbować, pomijając Krok 2 i 3.
Aniket Bhansali
32

Podobnie jak w przypadku innych rozwiązań, popełnić pierwszy i zdawać sobie sprawę, że będzie stracić żadnych zmian un-popełnione.

Miałem z tym lepsze wyniki:

git rm -r --cached .
git reset HEAD --hard
git status

Pamiętaj, że status nie powinien mieć teraz żadnych zmodyfikowanych plików.

Steven Stark
źródło
2
ten nie działa dla mnie, ale odpowiedź ifeegoo działa
fanny
21

W moim przypadku dzieje się tak, ponieważ pliki już istnieją w repozytorium i staram się je zignorować.

Oto rzeczy, które zrobiłem, aby rozwiązać problem:

  • Skopiuj pliki do folderu tymczasowego
  • Usuń je z mojego folderu projektu.
  • Zatwierdź zmiany, które usuwają te pliki z repozytorium
  • Ponownie dodałem te pliki do mojego folderu projektu

Do tego czasu wszelkie zmiany, które wprowadziłem w tych plikach, zostały zignorowane.

Myślę, że nie możesz zignorować plików, które już istnieją w repozytorium.

Edesa
źródło
W moim przypadku były już wystawiane. Dopiero po zrobieniu tego, co sugerujesz, a następnie próbie popełnienia i zobaczeniu ostrzeżenia, że ​​zostali wystawieni i zostali usunięci, zdałem sobie sprawę, że to był problem.
dudeNumber4
19

Wszystkie odpowiedzi tutaj są w rzeczywistości obejściami. Przed uruchomieniem musisz utworzyć plik .gitignore git init. W przeciwnym razie gitnigdy nie będziesz wiedział, że musisz zignorować te pliki, ponieważ zostały już wyśledzone.

echo .idea/ >> .gitignore
git init

Jeśli rozwijasz się na codzień, radzę dodać do Twojego ~/.gitignore_globalpliku zwykle ignorowane pliki . W ten sposób gitbędziesz już wiedział, które pliki (co oznacza „twój użytkownik”, ponieważ jest to plik w katalogu domowym) zwykle ignorujesz.

CESCO
źródło
Dzięki Bogu ... w końcu rozwiązanie, które działa dla mnie.
Dbl
~/.gitignore_globalto konfigurowalna nazwa. Uruchom git config --global core.excludesfilenajpierw, aby sprawdzić, czy masz już zdefiniowany plik. Jeśli nie, uruchom git config --global core.excludesfile ~/.gitignore_global.
Noumenon
Obejście, jeśli nie utworzyłeś .gitignorenajpierw: zmień nazwę śledzonego pliku. .gitignorebędą stosowane tak, jakby były nowe.
Noumenon
15

Sprawdź także katalog, w którym umieściłeś .gitignore.

Powinien znajdować się w katalogu głównym Twojego projektu :

./myproject/.gitignore

Nie w

./myproject/.git/.gitignore
Artem Zajcew
źródło
9

W szczególności dla użytkowników systemu Windows: jeśli masz nieśledzone pliki, a czyszczenie / usuwanie buforowanych plików nie działa. Spróbuj otworzyć PowerShell i przekonwertować plik .gitignore na kodowanie UTF-8:

$Myfile = Get-Content .\.gitignore`
$Myfile | Out-File -Encoding "UTF8" .gitignore

Musisz to zrobić tylko raz, aby zakodować plik .gitignore dla tego katalogu, a ponieważ plik jest następnie kodowany poprawnie, przy każdej edycji pliku w przyszłości powinien on działać. Wydaje mi się, że jest to spowodowane usterką polegającą na tym, że GitHub nie zamierza czytać kodowania innego niż UTF-8 dla pliku .gitignore. O ile mi wiadomo, ten problem nie został jeszcze rozwiązany w systemie Windows. To nie jest zbyt wielka sprawa, po prostu debugowanie, gdy nie działa.

maksymusg
źródło
8

.gitignoreMoże się zdarzyć inny problem , szczególnie dla użytkownika systemu Windows. Git nie lubi tego, kiedy się nazywasz .gitignore(np. unity.gitignore).

Zawsze będziesz chciał go nazwać .gitignorelub w systemie Windows, .gitignore.ponieważ system Windows myśli, że próbujesz zmienić nazwę bez nazwy pliku.

Goldblaze
źródło
7

Właśnie natrafiłem na ten problem. Zawartość mojego pliku .gitignore nadal pojawiała się na liście nieśledzonych plików.

Użyłem tego, aby utworzyć plik ignorowania:

echo "node_modules" > .gitignore

Okazuje się, że podwójne cytaty były dla mnie problemem. Usunąłem plik zignorowany, a następnie ponownie użyłem polecenia bez cudzysłowów i działało to zgodnie z oczekiwaniami. Nie musiałem zadzierać z kodowaniem plików. Używam Cmder na komputerze z systemem Windows 10 .

Przykład:

echo node_modules > .gitignore
bprdev
źródło
Dziwne, to polecenie echa naprawiło problem, który miałem lokalnie, gdzie zignorowany plik, który usunąłem przypadkowo, a następnie odtworzyłem, pojawiał się jako dopuszczalny, nieśledzony plik. Z jakiegoś powodu, chociaż nie zmieniło to mojego pliku ignorowania, naprawiłem mój problem.
Patrick,
6

Dla mnie żadna z poprzednich odpowiedzi nie zadziałała. Musiałem skopiować .gitignoretekst do exclude.txtpliku znalezionego pod adresem

<Your-project-folder>\.git\info

Po zakończeniu odśwież zmiany i znikną wszystkie nieśledzone pliki. Zobowiązuj się jak zwykle.

raga
źródło
6

Moim problemem był (jak sugeruje OP) uszkodzony plik .gitignore. Nie wierzyłem, że tak, i zignorowałem tę możliwość, dopóki wszystko inne nie zawiodło. Uszkodzenie nievi pojawiło się , ale na początku pliku były dwa bajty, co spowodowało zignorowanie pliku .gitignore. Dla mnie te pojawiły się tylko podczas pisania cat .gitignore, co pokazało:

��# Built application files
*.apk
*.ap_

# ...

Nie mam pojęcia, jak to się tam skończyło, ale odtworzenie pliku rozwiązało problem. Analiza szesnastkowa uszkodzonego pliku wykazała, co następuje:

user@dev ~/project/myproject $ xxd -b .gitignore
00000000: 11111111 11111110 00100011 00000000 00100000 00000000  ..#. .
00000006: 01000010 00000000 01110101 00000000 01101001 00000000  B.u.i.
pcdev
źródło
2
To wygląda jak znak kolejności bajtów UTF-16 w pliku zakodowanym w UTF-8. en.wikipedia.org/wiki/Byte_order_mark
jsageryd
6

Miałem ten problem z plikiem .gitignore zawierającym ten wiersz:

lib/ext/

Właśnie zdałem sobie sprawę, że w rzeczywistości ten katalog jest dowiązaniem symbolicznym do folderu w innym miejscu:

ls -la lib/ext/
lrwxr-xr-x 1 roipoussiere users 47 Feb  6 14:16 lib/ext -> /home/roipoussiere/real/path/to/the/lib

W linii lib/ext/Git faktycznie szuka folderu , ale dowiązanie symboliczne to plik , więc mój libfolder nie jest ignorowany.

Naprawiłem to, zastępując lib/ext/przez lib/extw moim pliku .gitignore.

roipoussiere
źródło
5

Miałem ten sam problem. Uważam, że problemem była rozbieżność między CR a CR + LF. Przechowałem rzeczy w moim .gitignore za pomocą CMD (w Windows 7) i następującej komendy:

Zły:

echo "file_to_be_ignored.py" >> .gitignore<br>
echo "*~" >> .gitignore

Itp.

Problem polegał na tym, że to polecenie nie umieszcza poprawnego znacznika końca linii, aby Git rozpoznał nowe linie (CR lub CR + LF, gdy Git spodziewa się drugiego). Rozwiązałem problem, ręcznie zastępując każdą nową linię w Vimie (Vim na ratunek!) I działało idealnie.

Spróbuj edytować .gitignore w Notepad ++ lub Vim (najlepiej). Nawet jeśli plik wygląda na poprawnie sformatowany, spróbuj zastąpić nowe linie. To brzmi dziwnie, wiem, ale zadziałało dla mnie. :RE

fikcyjno-logiczny
źródło
4

OK, więc w moim przypadku zaakceptowane rozwiązanie nie zadziałało, a to, co zadziałało, opisano tutaj:

Czy program Visual Studio 2013 ignoruje plik .gitignore?

W skrócie:

  • Zamknij Visual Studio.
  • Przejdź do folderu .git
  • Usunąć ms-persist.xml
  • Uruchom ponownie Visual Studio
Bartosz
źródło
3

Należy również spojrzeć na jedną rzecz: czy zapisujesz plik .gitignore z poprawnymi zakończeniami linii?

Windows:

Jeśli używasz go w systemie Windows, czy zapisujesz go z zakończeniami linii systemu Windows? Nie wszystkie programy domyślnie to robią; Notepad ++ i wiele edytorów PHP domyślnie kończy się linuxem, więc pliki będą kompatybilne z serwerem. Jednym z łatwych sposobów sprawdzenia tego jest otwarcie pliku w Notatniku Windows. Jeśli wszystko pojawia się w jednej linii, plik został zapisany z zakończeniami Linuksa.

Linux:

Jeśli masz problemy z plikiem pracującym w środowisku Linux, otwórz plik w edytorze, takim jak Emacs lub nano . Jeśli zobaczysz jakieś niedrukowalne znaki, plik został zapisany z zakończeniami linii Windows.

Dom na plaży
źródło
3

Kolejny możliwy powód - kilka wystąpień klientów Git działających jednocześnie . Na przykład „git shell” + „GitHub Desktop” itp.


To mi się przydarzyło. Używałem „GitHub Desktop” jako głównego klienta i ignorowałem niektóre nowe ustawienia .gitignore: zatwierdzanie po zatwierdzeniu:

  1. Popełniasz coś.
  2. Następnie zatwierdzenie: ignoruje ustawienia .gitignore. Zatwierdzanie zawiera wiele plików tymczasowych wymienionych w .gitignore.
  3. Wyczyść pamięć podręczną Git; sprawdź, czy .gitignore to UTF-8; usuń pliki → zatwierdzaj → przenieś pliki z powrotem; pomiń jedno zatwierdzenie - nic nie pomogło.

Powód : edytor Visual Studio Code działał w tle z tym samym otwartym repozytorium. Program Visual Studio Code ma wbudowaną kontrolę Git, co powoduje pewne konflikty.

Rozwiązanie : sprawdź dwukrotnie wielu ukrytych klientów Git i używaj tylko jednego klienta Git na raz, szczególnie podczas czyszczenia pamięci podręcznej Git.

Oleg Zarevennyi
źródło
3

Jest już kilka świetnych odpowiedzi, ale moja sytuacja była nużąca. Zredagowałem źródło zainstalowanego oprogramowania PLM (zarządzanie cyklem życia produktu) na Win10, a potem zdecydowałem: „Prawdopodobnie powinienem był zrobić z tego repozytorium git”.

Tak więc opcja pamięci podręcznej nie będzie dla mnie bezpośrednio działać. Publikowanie dla innych, którzy mogli dodać kontrolę źródła PO wykonaniu kilku początkowych prac ORAZ .gitignorenie działa ALE, możesz bać się stracić sporo pracy, więc git rm --cachednie jest to dla ciebie.

! WAŻNE: Jest tak, ponieważ dodałem git za późno do „projektu”, który jest zbyt duży i wydaje się ignorować mój .gitignore. Nigdy nie mam zobowiązań. Mogę z tego zrezygnować :)

Po pierwsze:

rm -rf .git
rm -rf .gitignore

Następnie musiałem mieć obraz moich zmian. Ponownie, jest to produkt instalacyjny, w którym wprowadziłem zmiany. Za późno na pierwsze zatwierdzenie czystej gałęzi master. Potrzebowałem więc listy tego, co zmieniłem, odkąd zainstalowałem program, dodając > changed.logjedną z następujących opcji:

PowerShell

# Get files modified since date.
Get-ChildItem -Path path\to\installed\software\ -Recurse -File | Where-Object -FilterScript {($_.LastWriteTime -gt '2020-02-25')} | Select-Object FullName

Grzmotnąć

# Get files modified in the last 10 days...
find ./ -type f -mtime -10

Teraz mam swoją listę zmian, które zmieniłem w ciągu ostatnich dziesięciu dni (nie zajmujmy się tutaj najlepszymi praktykami poza tym, że powiedziałem: tak, zrobiłem to sobie).

Na dobry początek, teraz:

git init .
# Create and edit .gitignore

Musiałem porównać moją zmienioną listę z moim rosnącym .gitignore, działającym w git statusmiarę , jak go ulepszałem, ale moje zmiany w .gitignore są odczytywane podczas pracy.

Wreszcie mam listę pożądanych zmian! W moim przypadku jest to płyta główna - niektóre motywy działają wraz z konfiguracjami serwera xml specyficznymi dla uruchamiania systemu deweloperskiego przeciwko temu oprogramowaniu, które chcę umieścić w repozytorium, aby inni deweloperzy mogli go pobrać i wesprzeć ... To będzie nasza gałąź master, więc zobowiązanie, pchanie, a na koniec ODBUDOWA nowej pracy!

Neil Guy Lindberg
źródło
2

Wystarczy usunąć folder lub plik, który został wcześniej zatwierdzony w Git, za pomocą następującego polecenia. Następnie plik gitignore będzie odzwierciedlał poprawne pliki.

    git rm -r -f "folder or files insides"
Atif Hussain
źródło
2

Jedną z trudnych rzeczy, które nie zostały uwzględnione w innych odpowiedziach tutaj, jest to, że plik .gitignore nie będzie działać, jeśli masz wbudowane komentarze, takie jak to:

foo/bar # The bar file contains sensitive data so we don't want to make this public

Jeśli masz takie komentarze, zmień je w następujący sposób:

# The bar file contains sensitive data so we don't want to make this public
foo/bar
James
źródło
2

Istnieje również możliwość edycji .gitignorepliku za pomocą sudopolecenia. Napotkałem ten sam problem i podczas wykonywania poleceń: git statusnadal widziałem pliki „należy zignorować”.

Po edycji z nano .gitignorezamiast sudo nano .gitignore, mogłem zobaczyć prawidłowe odbicie.

aviral sanjay
źródło
2

Utworzyłem .gitignore przy użyciu programu echo "..." > .gitignorePowerShell w systemie Windows, ponieważ nie pozwala mi to tworzyć w Eksploratorze Windows.

Problem w moim przypadku polegał na kodowaniu utworzonego pliku, a problem został rozwiązany po zmianie go na ANSI.

Ahmad
źródło
2

Ja również mam ten sam problem na Ubuntu, utworzyłem go .gitignorez terminala i działa dla mnie

touch .gitignore

UA_
źródło
2

Mój nie działał, ponieważ dosłownie stworzyłem dokument tekstowy o nazwie .gitignore

Zamiast tego utwórz dokument tekstowy, otwórz go w Notepad ++, a następnie zapisz jako .gitignore

Pamiętaj, aby podczas zapisywania wybrać Wszystkie typy (*. *) Z menu rozwijanego.


Lub w gitbash, po prostu użyj touch .gitignore

Kari
źródło
1

Jeśli jesteś użytkownikiem Notepad ++ , spróbuj wykonać następujące czynności:

Otwórz plik .gitignore za pomocą Notepad ++ i wykonaj:

Menu EdycjaKonwersja EOLFormat WindowsZapisz .

Spróbuj użyć git statusponownie i sprawdź, czy to działa dla Ciebie.

Odpowiedzi na podobne pytanie zamieściłem tutaj .

Ozesh
źródło
1

Dla mnie był to kolejny problem. Mój plik .gitignore jest skonfigurowany tak, aby ignorować wszystko oprócz rzeczy, które, jak mówię, nie należy ignorować. Podobnie jak:

/*
!/content/

To oczywiście oznacza, że ​​mówię Gitowi, aby zignorował sam plik .gitignore. Co nie stanowiło problemu, dopóki nie śledziłem pliku .gitignore. Ale w pewnym momencie popełniłem sam plik .gitignore. Doprowadziło to następnie do prawidłowego zignorowania pliku .gitignore.

Więc dodanie jeszcze jednej linii to naprawiło:

/*
!/content/
!.gitignore
użytkownik8118328
źródło
1

Mój problem polegał na tym, że zapisałem pliki, aby je zignorować cudzysłowami „”, a nie ukośnikiem /.

To nie działało i zostało zignorowane przez git:

"db.sqlite3"
"tdd_venv/"

To działało dobrze:

/db.sqlite3
/tdd_venv/

Sprawdziłem również kodowanie plików w systemie Windows za pomocą Notepad ++. Kodowanie zostało ustawione na UTF-8.

JSalys
źródło