Ignorování změn souborů pomocí Gitu

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Visual Studio 2022 | Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015

Git by neměl sledovat každý soubor v projektu. Dočasné soubory z vývojového prostředí, výstupy testů a protokolů jsou všechny příklady souborů, které pravděpodobně není potřeba sledovat. Pomocí různých mechanismů můžete Gitu sdělit, které soubory v projektu by se neměly sledovat, a zajistit, aby Git nenahlásil změny těchto souborů. U souborů, které Git nesleduje, můžete použít .gitignore soubor nebo exclude soubor. U souborů, které Git sleduje, můžete Gitu říct, aby je přestal sledovat a ignorovat změny.

V tomto článku získáte informace o těchto tématech:

  • Ignorování změn v nesledovaných souborech pomocí .gitignore souboru
  • Ignorování změn v nesledovaných souborech pomocí exclude souboru
  • Zastavení sledování souboru a ignorování změn pomocí git update-index
  • Zastavení sledování souboru a ignorování změn pomocí git rm

Použití souboru Gitignore

Gitu můžete říct, že nechcete sledovat určité soubory v projektu přidáním a konfigurací .gitignore souboru. Položky v souboru se vztahují jenom na nesledované soubory a nebudou .gitignore gitu bránit v vytváření sestav změn do sledovaných souborů. Sledované soubory jsou soubory, které byly potvrzeny a existují v posledním snímku Gitu.

Každý řádek v .gitignore souboru určuje vzor hledání souborů vzhledem k cestě .gitignore k souboru. Syntaxe.gitignore je flexibilní a podporuje použití zástupných znaků k určení jednotlivých nebo více souborů podle názvu, přípony a cesty. Git odpovídá .gitignore vzorům hledání souborům v projektu a určí, které soubory se mají ignorovat.

Obvykle přidáte .gitignore soubor do kořenové složky projektu. Do libovolné složky projektu ale můžete přidat .gitignore soubor, abyste věděli, které soubory se mají v této složce ignorovat, a její podsložky v libovolné vnořené hloubky. U více .gitignore souborů mají vzory hledání souborů určené .gitignore souborem v rámci složky přednost před vzory určenými .gitignore souborem v nadřazené složce.

Soubor můžete vytvořit .gitignore ručně a přidat do něj položky vzorů souborů nebo ušetřit čas stažením .gitignore šablony pro vývojové prostředí z úložiště GitHub gitignore . Jednou z výhod použití .gitignore souboru je, že můžete potvrdit změny a sdílet je s ostatními.

Visual Studio 2019 verze 16.8 a novější poskytuje prostředí pro správu verzí Gitu při údržbě uživatelského rozhraní Git v Team Exploreru . Pokud chcete použít Team Explorer, zrušte v řádku nabídek zaškrtnutí políčkaMožnosti možností>>náhledu funkcí>Nového uživatelského prostředí Gitu. Funkce Gitu můžete používat z obou rozhraní zaměnitelně. Níže uvádíme souběžné porovnání toho, jak vytvořit a přidat položky do .gitignore souboru.

Poznámka

Visual Studio automaticky vytvoří .gitignore soubor pro vývojové prostředí sady Visual Studio při vytváření nového úložiště Git.

Visual Studio Git

V okně Změny Gitu klikněte pravým tlačítkem na libovolný změněný soubor, který má Git ignorovat, a zvolte Ignorovat tuto místní položku nebo ignorovattuto příponu. Tyto možnosti nabídky neexistují pro sledované soubory.

Snímek obrazovky s možnostmi místní nabídky pro změněné soubory v okně Změny Gitu v sadě Visual Studio 2019

Visual Studio Team Explorer

V zobrazení Změnyv Team Exploreru klikněte pravým tlačítkem na libovolný změněný soubor, který má Git ignorovat, a zvolte Ignorovat tuto místní položku nebo Ignorovattuto příponu. Tyto možnosti nabídky neexistují pro sledované soubory.

Snímek obrazovky s možnostmi místní nabídky pro změněné soubory v Team Exploreru v sadě Visual Studio 2019

Možnost Ignorovat tuto místní položku přidá do .gitignore souboru novou položku a odebere vybraný soubor ze seznamu změněných souborů.

Možnost Ignorovat tuto příponu přidá do .gitignore souboru novou položku a odebere všechny soubory se stejnou příponou jako vybraný soubor ze seznamu změněných souborů.

Obě možnosti vytvoří .gitignore soubor, pokud ještě v kořenové složce úložiště neexistuje, a přidá do něj položku.

Úprava souboru gitignore

Každá položka v .gitignore souboru je buď: vzor hledání souborů, který určuje, které soubory se mají ignorovat, komentář, který začíná #, nebo prázdný řádek (pro čitelnost). Syntaxe.gitignore je flexibilní a podporuje použití zástupných znaků k určení jednotlivých nebo více souborů podle názvu, přípony a cesty. Všechny cesty k vzorům hledání souborů jsou relativní k .gitignore souboru.

Tady je několik příkladů běžných vzorů hledání souborů:

# 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 so as to not ignore 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/

Jakmile upravíte .gitignore soubor, Git aktualizuje seznam souborů, které ignoruje.

Poznámka

Uživatelé Systému Windows musí místo zpětného lomítka použít oddělovač cesty lomítka v .gitignore souboru. Při zadávání složky musí všichni uživatelé přidat koncové / hodnoty.

Použití globálního souboru Gitignore

Soubor můžete určit .gitignore jako globální ignorovaný soubor, který se vztahuje na všechna místní úložiště Git. K tomu použijte git config následující příkaz:

git config core.excludesfile <gitignore file path>

Globální .gitignore soubor pomáhá zajistit, že Git nepíše určité typy souborů, jako jsou kompilované binární soubory, v jakémkoli místním úložišti. Vzory vyhledávání souborů v souboru specifickém pro .gitignore úložiště mají přednost před vzory v globálním .gitignore souboru.

Použití souboru vyloučení

Do souboru ve .git/info/ složce místního úložiště můžete také přidat položky exclude vzoru hledání souborů. Soubor exclude informuje Git, které nesledované soubory se mají ignorovat, a používá stejnou syntaxi vzoru hledání souborů jako .gitignore soubor.

Položky v exclude souboru se vztahují pouze na nesledované soubory a nebrání Gitu hlásit změny na potvrzené soubory, které už sleduje. Na úložiště existuje pouze jeden exclude soubor.

Vzhledem k tomu, že Git soubor nepíše nebo nasdílí exclude , můžete ho bezpečně použít k ignorování souborů v místním systému, aniž by to mělo vliv na ostatní uživatele.

Ignorování změn pomocí indexu aktualizací Gitu

Někdy je vhodné dočasně zastavit sledování místního souboru úložiště a git ignorovat změny souboru. Můžete například chtít přizpůsobit soubor nastavení pro vaše vývojové prostředí bez rizika potvrzení změn. Uděláte to tak, že spustíte git update-index příkaz s příznakem skip-worktree:

git update-index --skip-worktree <file path>

Pokud chcete pokračovat ve sledování, spusťte git update-index příkaz s příznakem --no-skip-worktree .

Nebo můžete dočasně zastavit sledování souboru a git ignorovat změny souboru pomocí git update-index příkazu s příznakem assume-unchanged . Tato možnost je méně účinná než skip-worktreepříznak, protože assume-unchanged příznak lze vrátit zpět operací Gitu pull , která mění obsah souboru.

git update-index --assume-unchanged <file path>

Pokud chcete pokračovat ve sledování, spusťte git update-index příkaz s příznakem --no-assume-unchanged .

Ignorování změn pomocí Gitu rm

Položky v .gitignore souboru nebo exclude souboru nemají žádný vliv na soubory, které Git již sleduje. Git sleduje soubory, které jste předtím potvrdili. Pokud chcete trvale odebrat soubor ze snímku Gitu, aby ho Git přestal sledovat, ale bez jeho odstranění ze systému souborů spusťte následující příkazy:

git rm --cached <file path>
git commit <some message>

Potom pomocí .gitignore položky souboru nebo exclude souboru zabráníte Gitu v vytváření sestav změn v souboru.

Další kroky