Poprawka: Gitignore nie działa

GitHub stał się wiodącym pionierem w dziedzinie współpracy nad kodem i udostępniania repozytoriów. GitHub to przede wszystkim oprogramowanie do kontroli wersji, które pozwala użytkownikom kontrolować rozproszoną kontrolę wersji i SCM (zarządzanie kodem źródłowym). Ta platforma jest używana przez duże firmy i firmy na całym świecie.

Platformy takie jak te mają swoje techniczne aspekty i problemy. Jednym ze specyficznych problemów, które napotkali programiści, było to, że .gitignore nie działało w GitHub. Platforma albo ignorowała .gitignore, albo działała częściowo. Warto zauważyć, że problem może być nieco inny w każdym przypadku, ponieważ każdy przypadek to zupełnie inny scenariusz. Jednak wymienione przez nas rozwiązania będą zawierały poprawki, które będą działać uniwersalnie.

Co to jest .gitignore?

Git (lub GitHub) widzi każdy plik w katalogu roboczym. Charakteryzuje każdy plik jako jeden z trzech:

  • Śledzone: te pliki są zatwierdzane lub przemieszczane wcześniej w historii.
  • Nieśledzone: są to pliki, które nie były wcześniej przemieszczane ani zatwierdzane .
  • Ignorowane: są to pliki, które użytkownik sam kazał Gitowi całkowicie zignorować.

Te ignorowane pliki mogą się różnić w zależności od scenariusza i są to głównie pliki generowane maszynowo lub artefakty kompilacji. To jest powszechna praktyka; możesz ignorować różne inne pliki zgodnie z własnymi potrzebami. Oto kilka przykładów takich plików:

  • Skompilowany kod: te pliki mają zwykle rozszerzenie .class, .pyc, .ccp itp.
  • Ukryte pliki systemowe: są to pliki, które są używane przez system do jego operacji, ale są ukryte przed zwykłym widokiem, na przykład DS_Store lub Thumbs.db itp.
  • Buduj katalogi wyjściowe: są to głównie katalogi / bin, / out itp.
  • Pamięci podręczne zależności: te pliki mogą być zawartością modułów / node lub / packages.
  • Pliki konfiguracyjne IDE: Są to pliki konfiguracyjne, które są w większości tworzone lub zarządzane przez oprogramowanie IDE.
  • Pliki generowane w czasie wykonywania: istnieją programy, które tworzą pliki w czasie wykonywania. Jeśli którykolwiek taki kod zostanie uruchomiony, niektóre pliki mogą być generowane w czasie wykonywania w folderze roboczym i możesz je zignorować w Git.

Plik, który chcesz zignorować, jest śledzony w specjalnym pliku o nazwie .gitignore, który jest najczęściej sprawdzany w katalogu głównym repozytorium roboczego. Zgodnie z oficjalną dokumentacją GitHub na ten temat nie ma konkretnego polecenia gitignore. Zamiast tego musisz ręcznie edytować plik, który chcesz zignorować. Plik .gitignore zawiera wzorce, które są porównywane z nazwami plików w twoim repozytorium roboczym i są one używane do określenia, czy dany plik powinien być ignorowany, czy nie.

Co powoduje, że .gitignore nie działa?

Funkcja .gitignore może działać idealnie, ale być może nie została poprawnie skonfigurowana. We wszystkich naszych ankietach doszliśmy do wniosku, że moduł rzeczywiście działa. Powodem, dla którego programiści nie mogą korzystać z tej funkcji, jest głównie to, że nie skonfigurowali poprawnie pliku lub istnieją pewne warunki, które nie są spełnione w podstawowym kodzie.

Oto kilka rozwiązań, które mogą Ci się przydać. Każde rozwiązanie może nie mieć zastosowania w Twoim przypadku, więc upewnij się, że przełączasz się na następne, jeśli początkowe warunki nie są spełnione.

Rozwiązanie 1: sprawdzanie pliku .gitignore

Pojawił się ciekawy przypadek, w którym zobaczyliśmy, że plik .gitignore został utworzony w złym formacie. Ten szczególny problem występował, gdy użytkownicy utworzyli plik przy użyciu domyślnej aplikacji Notatnika w systemie operacyjnym Windows. Okazuje się, że Notatnik zapisuje plik w formacie Unicode zamiast ANSI. W tym rozwiązaniu zapiszemy zmiany Notatnika w odpowiednim formacie .gitignore i sprawdzimy, czy to rozwiąże problem.

Uwaga: podczas tworzenia nowego pliku za pomocą Notatnika należy usunąć rozszerzenie .txt z pliku.

  1. Po wpisaniu kodu lub zmian w nowym dokumencie tekstowym w Notatniku kliknij Plik i wybierz Zapisz jako .
  1. Teraz przed Encoding wybierz ANSI . Teraz usuń rozszerzenie pliku .txt i zapisz plik pod nazwą „ .gitignore ”. Wybierz właściwy katalog i zapisz.
  1. Teraz przejdź do katalogu i sprawdź, czy został utworzony poprawny plik. Teraz przetestuj go ponownie za pomocą Git i zobacz, czy funkcja Ignoruj ​​działa zgodnie z oczekiwaniami.

Programiści powinni powstrzymać się od używania domyślnego Notatnika w systemie Windows. Zamiast tego powinieneś używać odpowiedniego notatnika programisty. Niektóre przykłady obejmują Notepad ++ itp. W tych przypadkach nie będziesz mieć takich problemów.

Uwaga: Jeśli plik jest już zapisany w formacie UNICODE, powinieneś poprawnie zapisać jego zawartość w formacie ANSI, jeśli chcesz, aby plik był poprawnie wykrywany przez Git.

Rozwiązanie 2: Sprawdzanie pliku, który próbujesz zignorować

Innym warunkiem, pod którym działa .gitignore, jest to, że plik nie powinien być jeszcze częścią repozytorium . Jest to bardzo istotny aspekt, ponieważ jeśli to prawda, plik nie zostanie zignorowany, ponieważ jest już dodany do repozytorium. Git nie może tego zignorować, nawet jeśli umieścisz jego nazwę lub regułę w pliku .gitignore. W istocie Git ignoruje tylko nieśledzone pliki .

Powinieneś spojrzeć na swoją strukturę (repozytorium) i upewnić się, że plik, który obecnie próbujesz zignorować, nie został dodany do repozytorium. Jeśli tak, musiałbyś usunąć plik z repozytorium i po wprowadzeniu ostatnich zmian dodać jego nazwę do .gitignore (możesz też skopiować zawartość pliku i po usunięciu go powielić pod inną nazwą) .

Rozwiązanie 3: Ponowne dodanie plików do repozytorium

Jeśli dodałeś już reguły do ​​.gitignore, ale pliki, które chcesz zignorować, są już dodane, możemy ponownie dodać te pliki. Dodanie oznacza, że ​​usuniemy wszystko z indeksu Gita, a następnie ponownie dodamy wszystko do repozytorium. Kiedy dodamy pliki ponownie od zera, zostaną wzięte pod uwagę reguły, które dodałeś w .gitignore i tylko poprawne pliki zostaną dodane.

Uwaga: przed wykonaniem tego rozwiązania należy również wykonać kopię zapasową kodu w innym miejscu. Zawsze dobrze jest mieć kopię zapasową na wszelki wypadek.

  1. Wykonaj następujące polecenie. Spowoduje to odświeżenie i usunięcie ścieżek do plików z indeksu git w sposób rekurencyjny.
git rm -r --cached.
  1. Po wykonaniu tego należy wykonać następujące polecenie. Spowoduje to przywrócenie wszystkich plików, a ponieważ .gitignore będzie mieć reguły, zaktualizowane zostaną tylko poprawne pliki.
git add.
  1. Teraz zatwierdzimy wszystkie twoje pliki z powrotem do indeksu przy użyciu poniższego kodu:
git commit -m ".gitignore teraz działa"

Teraz sprawdź swoje pliki i zobacz, czy problem został rozwiązany i możesz ponownie użyć .gitignore bez żadnych problemów.