Dopo l’articolo che spiega come lavorare con i branch, oggi vogliamo iniziare a parlare di come è possibile con git, condividere il proprio codice con un team.

“Rebase” dei commit

Riscrivere la “storia” di una repository

git rebase

è il comando più potente di git, ma anche quello più pericoloso.

Questo comando prende una serie di commit (di solito da un branch) e li riproduce in cima ad un altro commit (normalmente l’ultimo commit in un altro branch), ricalcolando gli ID dei commit.

git rebase <branch name>|<commit ID>
First, rewinding head to replay your work on top of it...
Applying: simple commit

Annullare un rebase

git reset --hard ORIG_HEAD
HEAD is now at e9f9fdc update the README

Eliminare Branch

Eliminare branch che sono stati uniti (merge) al branch corrente:

git branch -d <branch name>
Deleted branch <branch name> (was <branch ID>)

Eliminare branch che non sono stati uniti al branch corrente:

git branch -D <branch name>
Deleted branch <branch name> (was <branch ID>)

Usare i Tag per le milestones

Il comando

git tag <tag name>

crea dei marker read-only nella repository.

Lista dei tag:

git tag

Taggare l’ultimo commit come versione 1.0 nel branch corrente:

git tag v1.0

Creare un tag chiamato beta1 a partire dall’ultimo commit:

git tag beta1 HEAD^

Lavorare con git in un TEAM con repository remote

Aggiungere una nuova repository remota:

git remote add <name> <repository URL>

Eliminare una repository remota:

git remote rm <name>

Eseguire questi comandi dopo aver fatto il push per la prima volta, se si desidera impostare il branch locale come un branch di monitoraggio.

git checkout origin/master
git branch -d master
git checkout -b master

Recuperare i cambiamenti

Usare il comando

git fetch <remote name>

Fetch dei cambiamenti da più repositories remote

git fetch --multiple remote1 remote2 ... and so on ...

Fetch da tutte le repositories remote (se si hanno più “remote” per una repository locale)

git fetch --all

Dopo aver effettuato il fetch si può fare il merge per unire le modifiche locali con quelle remote.

git merge

Si può usare il comando

git pull

per fare queste operazioni (fetch e merge) insieme.

git pull [name [branch name]]

(se non vengono passati dei parametri, considera di default la remote “origin”)

Pull in un branch locale da un diverso branch remoto

git pull origin <remote branch>:<local branch>

Pull dei cambiamenti e rebase invece del merge

git pull --rebase origin master

Inviare le modifiche alle repositories remote

Usare il comando

git push

se non vengono passati parametri, git assume che si vuole fare il push del branch corrente nel branch remoto con lo stesso nome, altrimenti si possono passare come parametri il nome della remote e del branch.

git push <remote name> <remote branch name>

git push <remote name> <local branch name>:<remote branch name>

Forzare il push

git push --force

… or …

git push -f

Push di un tag nella repository remota

git push <remote name> <tag name>

Push di tutti i tag

git push --tags <remote name>

Recuperare tag remoti e aggiornare quelli in locale

git fetch --tags <remote name>

Eliminare un branch remoto

git push <remote name> :<branch name>

Continuate a seguirci, nei prossimi articoli continueremo a parlare di Git e dei suoi comandi più usati.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *