androide

Ignorare file e directory in git (.gitignore)

Git Tutorial - Ignoring files and folders with the gitignore file

Git Tutorial - Ignoring files and folders with the gitignore file

Sommario:

Anonim

Spesso, quando si lavora su un progetto che utilizza Git, è necessario escludere file o directory specifici dall'invio al repository remoto.

Il file .gitignore specifica quali file non tracciati devono essere ignorati da Git.

Quali file devono essere ignorati?

I file ignorati sono generalmente file specifici della piattaforma o file creati automaticamente dai sistemi di compilazione. Alcuni esempi comuni includono:

  • File di runtime come registro, blocco, cache o file temporanei. File con informazioni riservate, come password o chiavi API. Codice compilato, come .class o .o . Directory di dipendenza, come /vendor o /node_modules Directory directory, ad esempio /public , /out o /dist . File di sistema come .DS_Store o Thumbs.db IDE o file di configurazione dell'editor di testo.

.gitignore

Un file .gitignore locale viene in genere inserito nella directory principale del repository. Tuttavia, è possibile creare più file .gitignore in diverse sottodirectory nel repository. I pattern nei file .gitignore sono abbinati rispetto alla directory in cui risiede il file.

I pattern definiti nei file che risiedono in directory di livello inferiore (sottodirectory) hanno la precedenza su quelli nelle directory di livello superiore.

I file .gitignore locali sono condivisi con altri sviluppatori e devono contenere schemi utili per tutti gli altri utenti del repository.

Personal Ignore Rules

I pattern specifici per il proprio repository locale e che non devono essere distribuiti ad altri repository, devono essere impostati nel file .git/info/exclude .

Ad esempio, è possibile utilizzare questo file per ignorare i file generati dagli strumenti di progetto personali.

.gitignore globale

Git ti consente anche di creare un file .gitignore globale, dove puoi definire le regole di ignorare per ogni repository Git sul tuo sistema locale.

Il file può essere nominato come preferisci e archiviato in qualsiasi posizione. Il posto più comune per conservare questo file è la home directory. Dovrai creare manualmente il file e configurare Git per usarlo.

Ad esempio, per impostare ~/.gitignore_global come file Git globale da ignorare, si dovrebbe fare quanto segue:

  1. Crea il file:

    touch ~/.gitignore_global

    Aggiungi il file alla configurazione di Git:

    git config --global core.excludesfile ~/.gitignore_global

    Apri il file con il tuo editor di testo e aggiungi le tue regole.

Le regole globali sono particolarmente utili per ignorare determinati file che non si desidera mai eseguire il commit, ad esempio file con informazioni riservate o file eseguibili compilati.

Ignorando un file precedentemente impegnato

I file nella copia di lavoro possono essere tracciati o non tracciati.

Per ignorare un file che è stato precedentemente sottoposto a commit, è necessario disinstallare e rimuovere il file dall'indice, quindi aggiungere una regola per il file in .gitignore :

git rm --cached filename

L'opzione --cached dice a git di non cancellare il file dall'albero di lavoro ma solo di rimuoverlo dall'indice.

Per rimuovere ricorsivamente una directory, usa l'opzione -r :

git rm --cached filename

Quando si eliminano i file in modo ricorsivo, utilizzare l'opzione -n che eseguirà un "ciclo di prova" e mostrerà quali file verranno eliminati:

git rm -r -n directory

Debug del file .gitignore

A volte può essere difficile determinare il motivo per cui un file specifico viene ignorato, soprattutto quando si utilizzano più file .gitignore o schemi complessi. Qui è utile il comando git check-ignore con l'opzione -v , che dice a git di visualizzare i dettagli sul modello di corrispondenza.

Ad esempio, per verificare perché il file www/yarn.lock viene ignorato, eseguire:

git check-ignore -v www/yarn.lock

L'output mostra il percorso del file gitignore , il numero della linea corrispondente e il modello effettivo.

www/.gitignore:31:/yarn.lock www/yarn.lock

Il comando accetta anche più di un nome file come argomenti e il file non deve esistere nel tuo albero di lavoro.

Visualizzazione di tutti i file ignorati

Il comando git status con l'opzione --ignored mostra un elenco di tutti i file ignorati:

git status --ignored

Conclusione

Il file .gitignore consente di escludere i file dal controllo nel repository. Il file contiene schemi globbing che descrivono quali file e directory devono essere ignorati.

gitignore.io è un servizio online che ti consente di generare file .gitignore per il tuo sistema operativo, linguaggio di programmazione o IDE.