Git Flashcards
Cos’è GIT?
GIT è un sistema di controllo di versione distribuito open source, progettato per gestire tutto, dai piccoli ai grandi progetti, con velocità ed efficienza.
Quali sono i principali comandi di GIT per la gestione dei repository?
git init: Crea un nuovo repository GIT.
git clone: Clona un repository esistente.
git status: Mostra lo stato dei cambiamenti.
git add: Aggiunge file all’area di staging.
git commit: Salva i cambiamenti nell’area di -staging.
git push: Invia i commit locali al repository remoto.
git pull: Recupera e unisce i cambiamenti dal repository remoto.
Come si crea un nuovo branch in GIT?
git branch nome_branch
Come si cambia branch in GIT?
git checkout nome_branch
Come si unisce un branch a un altro in GIT?
git checkout branch_destinazione
git merge nome_branch
Qual è la differenza tra git fetch e git pull?
git fetch: Recupera i cambiamenti dal repository remoto senza unirli al branch locale.
git pull: Recupera e unisce i cambiamenti dal repository remoto al branch locale.
Cos’è un commit in GIT e come si crea?
Un commit è una snapshot dei cambiamenti nel repository. Si crea con:
git commit -m “Messaggio del commit”
Cos’è un merge conflict e come si risolve?
Un merge conflict si verifica quando GIT non riesce a unire automaticamente le modifiche. Si risolve manualmente modificando i file in conflitto, quindi aggiungendo e commitando le modifiche risolte.
Come si annullano le modifiche locali in GIT?
Per annullare le modifiche non aggiunte all’area di staging:
git checkout – nome_file
Per annullare le modifiche nell’area di staging:
git reset HEAD nome_file
Come si visualizza la cronologia dei commit in GIT?
git log
Cos’è il file .gitignore e come si utilizza?
Il file .gitignore specifica i file e le directory che GIT deve ignorare. Si crea un file .gitignore nella directory del repository e si elencano i pattern dei file da ignorare.
Come si elimina un branch in GIT?
Per eliminare un branch locale:
git branch -d nome_branch
Per forzare l’eliminazione:
git branch -D nome_branch
Per eliminare un branch remoto:
git push origin –delete nome_branch
Cos’è un fork e come si utilizza?
Un fork è una copia di un repository che permette di fare modifiche senza influenzare il progetto originale. Si utilizza per contribuire a progetti open source creando un fork, apportando modifiche e inviando una pull request.
Cos’è una pull request (PR)?
Una pull request è una richiesta di revisione e integrazione delle modifiche apportate in un branch o fork nel repository principale. Viene utilizzata per collaborare e revisionare il codice prima di unire le modifiche.
Come si aggiorna un branch locale con i cambiamenti dal repository remoto?
git pull origin nome_branch
Come si può revertire un commit già pubblicato?
Utilizzare git revert, che crea un nuovo commit che annulla le modifiche introdotte dai commit specificati:
git revert HEAD~2..HEAD
Come si uniscono gli ultimi N commit in un unico commit?
Utilizzare git rebase -i HEAD~N, quindi sostituire “pick” con “squash” per unire i commit:
git rebase -i HEAD~N
Cos’è git bisect e come si utilizza per trovare un bug?
git bisect utilizza un metodo di ricerca binaria per trovare il commit che ha introdotto un bug:
git bisect start
git bisect bad
git bisect good {hash}
Come si copia un commit fatto in un branch a un altro branch?
Utilizzare il comando cherry-pick:
git checkout branch_destinazione
git cherry-pick {hash}
Come si configurano script per eseguire azioni ad ogni push?
Definire i hook pre-receive, update o post-receive nel repository. Questi hook sono script eseguiti in risposta a push:
# Esempio di script post-receive
#!/bin/sh
./deploy.sh