Aggiungere, modificare e rimuovere file

Tracciare un nuovo file

Il comando che dice a Git di tracciare un file e quindi seguirne le future modifiche è git add . Proviamo, nella cartella del nostro progetto ad aggiungere il file test.txt:

Possiamo notare che lanciando il comando git status , Git si trova questo nuovo file nella directory che non esisteva in precedenza e che quindi risulta untracked. Significa anche che questo file non c’era nella commit precedente.

Diciamogli quindi di tracciarlo:

Lanciando nuovamente git status, avremo in risposta:

Fatto. Da ora in poi il file test.txt è nell’area di stage ed è pronto per essere aggiunto alla commit. Naturalmente lanceremo questo comando quando avremo finito di lavorarci su, per non doverlo aggiungere nuovamente in seguito.

Modifica di file già tracciati

E se invece modifichiamo un file già tracciato? La situazione non cambia di molto. Proviamo a modificare il file index.php e lanciamo il comando git status :

Lo status ci dice che index.php è in Changes not staged for commit, ovvero che l’abbiamo modificato, ma non lo abbiamo ancora spostato nell’area di stage. Per aggiungerlo, dobbiamo nuovamente usare il comando git add  come in precedenza e poi vediamo cosa succede con git status :

Adesso tutti e due i file sono nell’area di stage, pronti per far parte del prossimo commit. E se modificassimo uno dei due file a questo punto? Modifichiamo index.php. Ci troveremmo davanti una situazione del genere:

index.php sarebbe sia dentro che fuori dallo stage. Come può essere? Semplice: non appena abbiamo digitato git add index.php , quella esatta versione del file (e solo quella!) è finita dentro lo stage. Non appena abbiamo modificato index.php, le versioni non corrispondono più. Per aggiungere le modifiche, quindi, devi usare nuovamente il comando git add . Così metterai quest’ultima versione di index.php nello stage.

Come vedi siamo tornati alla situazione precedenti, in cui tutti i file che abbiamo creato o modificato si trovano nello stage. Tutto è pronto per la commit!

Rimuovere file

Se nel tuo progetto c’è un file che non vuoi più tracciare, puoi usare il comando git rm  e poi eseguire il commit per salvare. Facciamo un esempio: il file prodotto.php non serve più al progetto:

Al prossimo commit, prodotto.php sparirà dai file del tuo repository.

Rimuovere un file già in stage

Se ti sei accorto che un file è già stato messo in stage ma non vuoi inserirlo nella commit successiva, puoi usare il comando git rm:

Ignorare dei file con .gitignore

Negli esempi precedenti abbiamo rimosso un file, sia dalla directory del progetto che dallo stage. Se volessimo invece mantenerlo e non tracciarlo.. semplicemente ignorarlo? Con Git è sufficiente creare un file chiamato .gitignore , da mettere nella tua directory di lavoro con la lista dei file da ignorare. Vediamo un esempio di contenuto di un file .gitignore :

Questo file dice a Git di ignorare tutti i file che si chiamano .DS_Store  e Thumbs.db  (..sapete di cosa parlo), di ignorare le directory static , tmp  e cache  e i file di log generati automaticamente che hanno l’estensione .log . Ti consiglio di creare questo file prima di partire con lo sviluppo del progetto!