Tipy & triky · Workflow · Všude · ~5 min týdně · 2 min čtení
Globální .gitignore: .DS_Store řešte jednou provždy
Naposledy ověřeno:

V každém druhém repozitáři na světě straší v .gitignore řádek .DS_Store — a přesto se tenhle soubor, který si macOS vytváří v každé složce, pravidelně někomu připlete do commitu. Přitom je to postavené na hlavu: smetí, které produkuje váš operační systém nebo váš editor, není vlastnost projektu, ale vašeho počítače. Git na to má správné řešení, o kterém se málo ví: globální ignore soubor. Nastavíte ho jednou a platí pro všechny repozitáře na vašem stroji — současné i budoucí.
Jak na to
- Vytvořte si soubor, třeba
~/.gitignore_global, a napište do něj vzory, které chcete ignorovat všude. Typický obsah:.DS_Store(macOS),Thumbs.dbaDesktop.ini(Windows),*.swp(Vim), případně složky vašich nástrojů, které si do projektů odkládají lokální nastavení. - Řekněte gitu, aby ho používal:
git config --global core.excludesFile ~/.gitignore_global. Tím se zapíše do vaší globální konfigurace a od té chvíle platí v každém repozitáři. - Ověřte to: v libovolném repozitáři spusťte
git statusve složce, kde nějaký.DS_Storeleží — už se nesmí nabízet mezi nesledovanými soubory. Kontrola konfigurace:git config --global core.excludesFile. - Pokud už je nějaké smetí v repozitáři commitnuté, ignorování na něj nestačí — odeberte ho z evidence příkazem
git rm --cached .DS_Storea commitněte. - Do projektového
.gitignorepak patří jen to, co se týká projektu samotného: složky se závislostmi, výstupy buildu, lokální konfigurace. Hranice je jednoduchá — co by ignorovali i kolegové s jiným systémem a editorem, patří do projektu; co je specialita vašeho stroje, patří do globálního souboru.
Vzorová situace
Vývojář přechází na nový počítač s macOS a během prvního týdne mu kolegové dvakrát vrátí pull request s poznámkou „máš tam .DS_Store“. Místo přidávání téhož řádku do .gitignore osmi firemních repozitářů (a hádky, jestli tam patří) si nastaví globální ignore — pět minut práce — a problém navždy zmizí, i pro každý projekt, který teprve naklonuje. Commity jsou čisté a .gitignore projektů přestane bobtnat výjimkami pro každý editor, který kdy někdo v týmu použil.
Co vám to přinese
Konec trapných commitů se systémovým smetím a konec vracených review kvůli souboru, který tam nepatří. Projektové .gitignore zůstanou krátké a srozumitelné, protože řeší projekt, ne vaše nástroje. Jednorázová pětiminutová investice, která pracuje v každém repozitáři, který kdy naklonujete. A pokud si soubor přibalíte do svých dotfiles, přestěhuje se s vámi i na příští počítač.
Chcete jít do hloubky? V příručce najdete kapitolu Základní systémy: inbox, priority, revize.
Podobné tipy
python -m http.server: nasdílejte složku do sítě jedním příkazem
Potřebujete dostat soubory do druhého zařízení na stejné síti? Python udělá z libovolné složky webovou stránku ke stažení.
SSH config: místo IP adresy a přepínačů pište „ssh prod“
Soubor ~/.ssh/config si pamatuje adresy, uživatele, porty i klíče za vás. Připojení na server se zkrátí na dvě slova.
ssh-copy-id: přihlašujte se na server bez psaní hesla
Jeden příkaz nahraje váš veřejný klíč na server — a od té chvíle se přihlašujete bez hesla, bezpečněji a rychleji.
Pomohlo vám to?
Líbil se vám tip?
Každý týden posílám jeden takový do e-mailu. Dvě minuty čtení, hodiny úspor.
E-book Top 30 tipů zdarma — pošlu vám ho hned.
Pak 1 tip týdně · žádný spam · odhlášení jedním klikem
Radši systém než jednotlivé tipy? E-mailový kurz zdarma — sedm dní, sedm e-mailů, každý den jedna dovednost.