Nel precedente articolo abbiamo introdotto git, come creare o clonare repository, come committare i messaggi etc.., in questo parliamo invece di come gestire i file e come creare branch.

Spostare file con git

File o direcory:

git mv some-file another-file

File o directory in un’altra directory :

git mv some-file some-directory

Eliminare file

git rm -- some-file

Eliminare una directory:

git rm -r -- some-directory/

Ripristinare una direcotory dopo averla eliminata ma senza aver effettuato il commit

Primo passo, resettare l’indice:

git reset HEAD -- some-directory/

Poi fare il checkout dei file:

git checkout -- some-directory/

Forzare eliminazione di un file:

git rm -f -- some-file

Condividere i cambiamenti

Lavorare con una repository remota, quindi clonarla o aggiungerla ad una repository locale esistente.

Recuperare i cambiamenti dalla repository remota con

git fetch <remote name>

fare il pull dei cambiamenti con

git pull <remote name>

Fare pull mantenendo le modifiche locali invece di fare il merge:

git pull --rebase <remote name> <branch name>

Fare push dei cambiamenti alla repository remota:

git push <remote name> <remote branch>

Organizzare la repository con Branches e Tags

I branch permettono di modificare alcune parti di codice mantenendo isolato quello iniziale.

I tag invece permettono di marcare milestone nel progetto, sono simili ai branch ma sono read-only.

Creare  e cambiare branch

Creare Branch :

git branch <branch name>

Creare Branch da un punto specifico:

git branch <commit ID> | <branch name> | <tag name>

Cambiare branch :

git checkout <branch name> | <tag name>

Creare branch e andare direttamente ad esso:

git checkout -b <branch name> [<starting point>]

Creare branch con tracciamento di git (di default):

git branch --track <branch name> [<starting point>]

Creare branch senza tracciamento di git :

git branch --no-track <branch name> [<starting point>]

Vedere i branch in una repository

Usare il comando

git branch

per vedere i branch locali, se si vogliono vedere solo quelli remoti aggiungere il flag -r, se si vogliono vedere tutti i branch passare il flag -a.

Vedere tutto quello che è stato sottoposto a “merge” oppure no, in un branch

git branch —-merged

git branch —-no-merged

Vedere tutti i branches che contengono un particolare commit:

git branch —-contains <commit ID>

Unire i commit tra vari branches

Usare il comando

git merge <branch name>

Il merge in automatico effettua il commit, se non si vuole ciò si può aggiungere il flag —no-commit

Merge da <branch one> a <branch two>

git checkout <branch two>

git merge <branch one>

Merge senza commit:

git merge --no-commit <branch name>

Forzare la creazione di un commit del merge:

git merge --no-ff <branch name>

Aggiungere i messaggi di ogni commit nel messaggio del merge commit :

git merge --log <branch name>

Specificare un messaggio per il merge commit:

git merge -m “my message” <branch name>

Modificare il messaggio del commit dopo averlo effettuato:

git merge --log —-no-ff <branch name>

git commit --amend -c HEAD

Nel prossimo articolo parleremo di altre funzionalità utili di git.