5.7 KiB
Git comandi principali
Cos'è git?
Git è un software di controllo versione distribuito utilizzabile da interfaccia a riga di comando, creato da Linus Torvalds nel 2005. Git lavora con i repository, ognuno dei quali ha 4 stati di lavoro:
- il primo stato è la directory corrente del progetto;
- il secondo è l'index che fa da spazio di transito per i files (
git add *
); - il terzo è l'head che punta all'ultimo commit fatto (
git commit -m "messaggio"
); - l'ultimo è il repository online (
git push server
).
I repository online e locali possono essere divisi in ramificazioni o branch. I branch permettono di creare delle versioni alternative al codice presente nel ramo master
, ovvero quello principale e stabile. Solitamente queste ramificazioni secondarie sono chiamate dev
. Ciò permette la creazione di features o aggiornamenti in fase alpha che non vanno ad intaccare minimamente il codice del progetto. Finito la scrittura della ramificazione il branch dev verrà unito con il master.
Git permette anche di gestire i tag
, le versioni del software in uso.
Configurazioni di base di git
Configurare il git con le proprie credenziali:
git config --global user.name 'username'
git config --global user.email 'email@email.it'
Creare un progetto
Ci son due modi per creare un progetto:
- Inizializzare un progetto non esistente in locale:
git init
- Inizializzare un progetto esistente su un server git (in remoto):
git clone serverURL.git
Esempio:
git clone https://gitea.it/PicciHud/Appunti.wiki.git
Git clone permette di copiare in locale il file .git del server e anche l'intero repository.
Configurazione del server remoto
Con questo comando si visualizza la lista di server remoti salvati con il relativo url:
git remote -v
Di solito il server principale si chiama origin
, ma è possibile specificare qualsiasi nome a gradimento.
Aggiungere un un server remoto
git remote add identificatoreServerRemoto UrlServerRemoto
Esempio:
git remote add origin https://gitea.it/PicciHud/Appunti.wiki.git
Lavorare nel progetto locale
Aggiungere i file dalla directory del progetto all'index
git add nome_file
Si può utilizzare l'asterisco *
per aggiungere tutti i file. Se si vuole escludere un file dalla selezione totale, basta creare un file denominato .gitignore
e inserire all'interno i file o le directory che non devono essere aggiunte all'index.
git add *
Aggiungere i file dell'index all'head
git commit -m "Messaggio del commit"
Annullamento dei commit:
git commit --amend
Il file ritorna allo stato precedente dell’ultimo commit:
git checkout -- nomeFile
Lavorare con il server remoto
Aggiornare il repository locale al commit più recente
git pull
Upload dei commit
git push identificatoreServerRemoto nomeBranch
Esempio:
git push -u origin master
Rinominare un file remoto
git remote rename identificatoreServerRemoto nomeFileVecchio nomeFileNuovo
Eliminare un file remoto
git remote rm nomeFile
Stato del progetto
Per vedere le modifiche del progetto:
git status
Per vedere i cambiamenti dei singoli files:
git diff
Vedere tutti i commit:
git log
Gestire i tag
Per visualizzare tutte le versioni esiste il comando:
git tag
Per visualizzare tutte le versioni con un determinato numero:
git tag -l 1*
Creazione di un tag
git tag -a versioneSoftware -m "nota sul tag"
Esempio:
git tag -a 1.2.3rc1 -m "aggiornato la navbar"
Vedere tutte le modifiche di un tag
git show 1.2.3rc1
Condividere i tag
git push identificatoreServerRemoto tagDaPubblicare
Esempio:
git push origin 1.2.3rc1
Condividere tutti i tag:
git push identificatoreServerRemoto --tag
Esempio:
git push origin --tag
Gestire i Branch
Lista dei Rami:
git branch
Creazione di un branch
git branch nomeBranch
Esempio:
git branch feature
Creare il ramo e passare a quel branch:
git checkout -b nomeBranch
Esempio:
git checkout -b feature
Cambiare ramo
git checkout nomeBranch
Esempio:
git checkout feature
Per ritornare al branch originale digitare:
git checkout master
Eliminare un ramo
git branch -d nomeBranch
Esempio:
git branch -d feature
Unire il branch al master (fare un commit nel branch)
git checkout master
git merge feature
Git Parameters
*** Inizializza l'area di lavoro ***
clone Clona un repository in una cartella
init Crea un git repository o ne inizializza uno
*** Lavorare nel progetto corrente ***
add Aggiungere i file nel INDEX
rm Rimuove i file dalla directory corrente e nel INDEX
*** Mostra la cronologia e lo stato ***
log Mostra i log
status stato del contenuto di un progetto
show Show various types of objects
*** Grow, mark and tweak your common history ***
branch Visualizza, crea e elimina ramo (branches)
checkout Cambia ramo (branches) o ripristina la struttura dell'area di lavoro
commit Registra le modifiche del repository
diff Confronta i commit
merge Unisce una o più cronologie di sviluppo
tag Crea, visualizza la lista, elimina o verifica il tag della versione del progetto