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.
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.