Ignoruj zmiany plików za pomocą usługi Git
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Usługa Git nie powinna śledzić każdego pliku w projekcie. Pliki tymczasowe ze środowiska programistycznego, danych wyjściowych testów i dzienników to wszystkie przykłady plików, które prawdopodobnie nie muszą być śledzone.
Możesz użyć różnych mechanizmów, aby poinformować usługę Git, które pliki w projekcie nie mają być śledzone, i upewnić się, że usługa Git nie zgłosi zmian w tych plikach. W przypadku plików, które usługa Git nie śledzi, można użyć .gitignore
pliku lub exclude
. W przypadku plików śledzone przez usługę Git możesz poinformować usługę Git o zaprzestaniu ich śledzenia i ignorowaniu zmian.
W tym artykule omówiono sposób wykonywania następujących zadań:
- Ignoruj zmiany w nieśledzonych plikach przy użyciu
.gitignore
pliku. - Ignoruj zmiany w nieśledzonych plikach przy użyciu
exclude
pliku. - Zatrzymaj śledzenie pliku i ignoruj
git update-index
zmiany przy użyciu polecenia . - Zatrzymaj śledzenie pliku i ignoruj
git rm
zmiany przy użyciu polecenia .
Używanie pliku gitignore
Możesz poinformować usługę Git, aby nie śledzić niektórych plików w projekcie, dodając i konfigurując plik gitignore . Wpisy w .gitignore
pliku mają zastosowanie tylko do nieśledzonych plików. Nie uniemożliwiają one usłudze Git raportowania zmian śledzonych plików. Śledzone pliki to pliki, które zostały zatwierdzone i istnieją w ostatniej migawki usługi Git.
Każdy wiersz w .gitignore
pliku określa wzorzec wyszukiwania plików względem ścieżki .gitignore
pliku. Składnia .gitignore jest elastyczna i obsługuje używanie symboli wieloznacznych do określania pojedynczych lub wielu plików według nazwy, rozszerzenia i ścieżki. Usługa Git dopasuje .gitignore
wzorce wyszukiwania do plików w projekcie, aby określić, które pliki mają być ignorowane.
Zazwyczaj dodajesz .gitignore
plik do folderu głównego projektu. Można jednak dodać plik do dowolnego folderu projektu, aby poinformować usługę .gitignore
Git, które pliki mają być ignorowane w tym folderze i jego podfolderach w dowolnej głębi zagnieżdżonej. W przypadku wielu .gitignore
plików wzorce .gitignore
wyszukiwania plików określone w folderze mają pierwszeństwo przed wzorcami określonymi .gitignore
przez plik w folderze nadrzędnym.
Możesz ręcznie utworzyć .gitignore
plik i dodać do niego wpisy wzorca pliku. Możesz też zaoszczędzić czas, .gitignore
pobierając szablon dla środowiska deweloperskiego z repozytorium GitHub gitignore. Jedną z zalet korzystania z .gitignore
pliku jest to, że można zatwierdzać zmiany i udostępniać je innym osobom.
Uwaga
Program Visual Studio automatycznie tworzy .gitignore
plik dla środowiska deweloperskiego programu Visual Studio podczas tworzenia repozytorium Git.
Program Visual Studio 2022 zapewnia środowisko kontroli wersji usługi Git za pomocą menu Git, zmian usługi Git i menu skrótów w Eksplorator rozwiązań. Program Visual Studio 2019 w wersji 16.8 oferuje również interfejs użytkownika narzędzia Team Explorer Git. Aby uzyskać więcej informacji, zobacz kartę Visual Studio 2019 — Team Explorer .
W oknie Zmiany usługi Git kliknij prawym przyciskiem myszy dowolny zmieniony plik, który ma zostać zignorowany przez usługę Git, a następnie wybierz polecenie Ignoruj ten element lokalny lub Ignoruj to rozszerzenie. Te opcje menu nie istnieją dla śledzonych plików.
Opcja Ignoruj ten element lokalny dodaje nowy wpis do .gitignore
pliku i usuwa wybrany plik z listy zmienionych plików.
Opcja Ignoruj to rozszerzenie dodaje nowy wpis do .gitignore
pliku i usuwa wszystkie pliki z tym samym rozszerzeniem co wybrany plik z listy zmienionych plików.
Każda z opcji tworzy plik, .gitignore
jeśli jeszcze nie istnieje w folderze głównym repozytorium i dodaje do niego wpis.
Edytowanie pliku gitignore
Każdy wpis w .gitignore
pliku to: wzorzec wyszukiwania plików określający, które pliki mają być ignorowane, komentarz rozpoczynający się od znaku numeru () lub pusty wiersz (#
w celu zapewnienia czytelności). Składnia jest elastyczna .gitignore
i obsługuje używanie symboli wieloznacznych do określania pojedynczych lub wielu plików według nazwy, rozszerzenia i ścieżki. Wszystkie ścieżki wzorców wyszukiwania plików są względem .gitignore
pliku.
Oto kilka przykładów typowych wzorców wyszukiwania plików:
# Ignore all files with the specified name.
# Scope is all repo folders.
config.json
# Ignore all files with the specified extension.
# Scope is all repo folders.
*.json
# Add an exception to prevent ignoring a file with the specified name.
# Scope is all repo folders.
!package.json
# Ignore a file with the specified name.
# Scoped to the 'logs' subfolder.
/logs/test.logfile
# Ignore all files with the specified name.
# Scoped to the 'logs' subfolder and all folders beneath it.
/logs/**/test.logfile
# Ignore all files in the 'logs' subfolder.
/logs/
Gdy tylko zmodyfikujesz .gitignore
plik, usługa Git aktualizuje listę plików, które ignoruje.
Uwaga
Użytkownicy systemu Windows muszą używać ukośnika (/
) jako separatora ścieżki w .gitignore
pliku, zamiast używać ukośnika odwrotnego (\
). Wszyscy użytkownicy muszą dodać ukośnik końcowy podczas określania folderu.
Używanie globalnego pliku gitignore
Plik można wyznaczyć .gitignore
jako globalny plik ignoruj, który ma zastosowanie do wszystkich lokalnych repozytoriów Git. W tym celu użyj polecenia w git config
następujący sposób:
git config core.excludesfile <gitignore file path>
Plik globalny .gitignore
pomaga upewnić się, że usługa Git nie zatwierdza niektórych typów plików, takich jak skompilowane pliki binarne, w żadnym lokalnym repozytorium. Wzorce wyszukiwania plików w pliku specyficznym dla .gitignore
repozytorium mają pierwszeństwo przed wzorcami w pliku globalnym .gitignore
.
Używanie pliku wykluczania
Można również dodawać wpisy wzorców wyszukiwania plików do exclude
pliku w .git/info/
folderze lokalnego repozytorium. Plik exclude
informuje usługę Git, które nieśledzone pliki mają być ignorowane. Używa tej samej składni dla wzorców wyszukiwania plików jako .gitignore
pliku.
Wpisy w exclude
pliku mają zastosowanie tylko do nieśledzonych plików. Nie uniemożliwiają usłudze Git raportowania zmian w zatwierdzonych plikach, które już śledzą. Na repozytorium istnieje tylko jeden exclude
plik.
Ponieważ usługa Git nie zatwierdza ani nie wypycha exclude
pliku, możesz bezpiecznie użyć go do ignorowania plików w systemie lokalnym bez wpływu na nikogo innego.
Ignoruj zmiany za pomocą usługi git update-index
Czasami wygodne jest tymczasowe zatrzymanie śledzenia lokalnego pliku repozytorium i zignorowanie zmian w pliku przez usługę Git. Możesz na przykład dostosować plik ustawień dla środowiska deweloperskiego bez ryzyka popełnienia zmian. W tym celu możesz uruchomić git update-index
polecenie z flagą skip-worktree
:
git update-index --skip-worktree <file path>
Aby wznowić śledzenie, uruchom git update-index
polecenie z flagą --no-skip-worktree
.
Możesz też tymczasowo zatrzymać śledzenie pliku i zignorować zmiany w pliku za pomocą git update-index
polecenia z flagą assume-unchanged
. Ta opcja jest mniej skuteczna niż flaga skip-worktree
, ponieważ operacja git pull
, która zmienia zawartość pliku, może przywrócić flagę assume-unchanged
.
git update-index --assume-unchanged <file path>
Aby wznowić śledzenie, uruchom git update-index
polecenie z flagą --no-assume-unchanged
.
Używanie narzędzia git rm do ignorowania zmian
Wpisy w .gitignore
pliku lub exclude
nie mają wpływu na pliki, które już śledzi usługa Git. Usługa Git śledzi pliki, które zostały wcześniej zatwierdzone. Aby trwale usunąć plik z migawki usługi Git, aby usługa Git nie śledziła go, ale bez usuwania go z systemu plików, uruchom następujące polecenia:
git rm --cached <file path>
git commit <some message>
Następnie użyj .gitignore
wpisu lub exclude
, aby uniemożliwić usłudze Git raportowanie zmian w pliku.