Git gestione file

Da Andreabont's Wiki.

Gestione dei commit

Aggiungere un file

Questo comando è usato sia per versionare un file non tracciato da git, sia per includere le modifiche di un file versionato in un commit.

git add <url_del_file>

Rimuovere un file

Questo comando è necessario per rimuovere un file versionato da git.

git rm <url_del_file>

Esecuzione del commit

git commit -m'<messaggio_del_commit>'

Applica un commit di un'altro branch a quello in uso

git cherry-pick <commit-id>

In caso di conflitti è possibile interrompere il cherry pick ripristinando la versione precedente:

git cherry-pick --abort

Gestione dei file non versionati

Ignora modifiche locali ad un file indicizzato

Potresti voler tenere una versione diversa di un file in locale, non inviando mai le modifiche ad un repository remoto, per ogni file va eseguito il comando:

git update-index --assume-unchanged <file>

Rimuovi tutti i file non gestiti da git

git clean -f -d

Annullare le modifiche ad un file

Ci sono vari modi per annullare delle modifiche in un repository git.

Checkout su HEAD

git checkout -- <file>

Questa opzione è valida solo per file non inclusi in alcun commit. Il funzionamento è semplice, riporta quel file alla versione salvata nell'ultimo commit salvato localmente.

Checkout su commit specificato

git checkout <commit-id> <file>

Attenzione: Il file viene riportato indietro alla versione specificata, ma viene visto come una modifica. Successivamente sarà necessario costruire un commit.

Reset

git reset --hard <commit-id>

Questa opzione porta la "testa" nel repository al commit indicato, cancellando tutti quelli successivi. E' una soluzione sconsigliata nel caso i commit siano già stati inviati al repository remoto. Usare solo per commit locali.

Revert

git revert <commit-id>

Questa opzione è praticabile in caso vogliate annullare un commit già inviato nel repository remoto. La funzione genera un nuovo commit che annulla le modifiche del commit indicato. Il commit annullato non viene rimosso, semplicemente le sue modifiche vengono annullate dal nuovo commit.