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

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

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 dát vědět, které soubory v projektu se nemají sledovat, a zajistit, aby Git neohlá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 ignoroval změny.

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

  • Pomocí souboru ignorujte změny nesledovaných souborů .gitignore .
  • Pomocí souboru ignorujte změny nesledovaných souborů exclude .
  • Pomocí příkazu zastavte sledování souboru a ignorujte změny git update-index .
  • Pomocí příkazu zastavte sledování souboru a ignorujte změny git rm .

Použití souboru .gitignore

Gitu můžete říct, že nemá sledovat určité soubory v projektu přidáním a konfigurací souboru .gitignore . Položky v .gitignore souboru se vztahují pouze na nesledované soubory. Nezabrání Gitu v hlášení změn 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 porovnává .gitignore vzory hledání se soubory ve vašem projektu a určuje, které soubory se mají ignorovat.

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

Můžete do něj ručně vytvořit .gitignore soubor a přidat do něj položky vzoru souboru. Nebo si můžete 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.

Poznámka:

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

Visual Studio 2022 poskytuje prostředí pro správu verzí Git prostřednictvím nabídky Git, změn Gitu a místních nabídek v Průzkumník řešení. Visual Studio 2019 verze 16.8 také nabízí uživatelské rozhraní Git Team Exploreru. Další informace najdete na kartě Visual Studio 2019 – Team Explorer .

V okně Změny Gitu klikněte pravým tlačítkem na libovolný změněný soubor, který má Git ignorovat, a pak vyberte Ignorovat tuto místní položku nebo ignorovat toto rozšíření. 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

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á znaménkem čísla (#) nebo prázdným řádkem (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 pro vzory hledání souborů jsou relativní vzhledem 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 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/

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 lomítko (/) jako oddělovač cest v .gitignore souboru.\ Všichni uživatelé musí při zadávání složky přidat koncové lomítko.

Použití globálního souboru .gitignore

Soubor můžete určit .gitignore jako globální ignorovaný soubor, který platí pro 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 neovědí určité typy souborů, jako jsou kompilované binární soubory, v jakémkoli místním úložišti. Vzory hledá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 pro vzory exclude hledání souborů. Soubor exclude umožňuje Gitu zjistit, které nesledované soubory se mají ignorovat. Používá stejnou syntaxi pro vzory hledání souborů jako .gitignore soubor.

Položky v exclude souboru se vztahují pouze na nesledované soubory. Gitu nebrání v vytváření sestav změn na potvrzené soubory, které už sleduje. Pro každé úložiště existuje pouze jeden exclude soubor.

Vzhledem k tomu, že Git soubor nepíše ani nenasdí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.

Použití git update-indexu k ignorování změn

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ě efektivní než skip-worktree příznak, protože operace Gitu pull , která mění obsah souboru, může příznak vrátit assume-unchanged zpět.

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í git rm

Položky v souboru .gitignore nebo exclude souboru nemají žádný vliv na soubory, které Git už sleduje. Git sleduje soubory, které jste dříve potvrdili. Pokud chcete trvale odebrat soubor ze snímku Gitu, aby ho Git přestal sledovat, ale aniž by ho odstranil 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 souboru.

Další kroky