Git Flashcards

1
Q

Cos’è GIT?

A

GIT è un sistema di controllo di versione distribuito open source, progettato per gestire tutto, dai piccoli ai grandi progetti, con velocità ed efficienza.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quali sono i principali comandi di GIT per la gestione dei repository?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Come si crea un nuovo branch in GIT?

A

git branch nome_branch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Come si cambia branch in GIT?

A

git checkout nome_branch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Come si unisce un branch a un altro in GIT?

A

git checkout branch_destinazione
git merge nome_branch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qual è la differenza tra git fetch e git pull?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cos’è un commit in GIT e come si crea?

A

Un commit è una snapshot dei cambiamenti nel repository. Si crea con:

git commit -m “Messaggio del commit”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cos’è un merge conflict e come si risolve?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Come si annullano le modifiche locali in GIT?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Come si visualizza la cronologia dei commit in GIT?

A

git log

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cos’è il file .gitignore e come si utilizza?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Come si elimina un branch in GIT?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cos’è un fork e come si utilizza?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cos’è una pull request (PR)?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Come si aggiorna un branch locale con i cambiamenti dal repository remoto?

A

git pull origin nome_branch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Come si può revertire un commit già pubblicato?

A

Utilizzare git revert, che crea un nuovo commit che annulla le modifiche introdotte dai commit specificati:
git revert HEAD~2..HEAD

17
Q

Come si uniscono gli ultimi N commit in un unico commit?

A

Utilizzare git rebase -i HEAD~N, quindi sostituire “pick” con “squash” per unire i commit:
git rebase -i HEAD~N

18
Q

Cos’è git bisect e come si utilizza per trovare un bug?

A

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}

19
Q

Come si copia un commit fatto in un branch a un altro branch?

A

Utilizzare il comando cherry-pick:
git checkout branch_destinazione
git cherry-pick {hash}

20
Q

Come si configurano script per eseguire azioni ad ogni push?

A

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