Esercizio didattico su Git e GitHub: fork, clone, modifica di una pagina HTML, commit, push e Pull Request.
| Elemento | Cos'è | Nel nostro progetto |
|---|---|---|
| Repository o REPO | Il progetto Git completo ospitato su GitHub | webpage-git-github-exercise |
| Repository del professore | Repository originale | ProfNardi/webpage-git-github-exercise |
| Fork | Copia di una repository GitHub → GitHub | Copia della REPO del professore → REPO dello studente |
| Remote | Un nome/alias che Git usa per identificare una repository remota | origin, upstream |
origin |
Remote che normalmente punta al fork dello studente | GitHub dello studente |
upstream |
Remote che punta alla repository originale | GitHub del professore |
| Branch | Un ramo della cronologia Git dentro una repository | main, Classe4CI, Classe4DI |
main |
Branch principale | Branch principale del progetto |
Classe4CI |
Branch dedicato alla 4CI | Branch della 4CI |
Classe4DI |
Branch dedicato alla 4DI | Branch della 4DI |
| Clone | Download da GitHub → Git | Lo studente clona il proprio fork in Git |
| Commit | Salva una versione nella storia di Git | git commit |
| Push | Upload da Git → GitHub | Lo studente invia i propri commit al proprio GitHub |
| Pull Request | Proposta di modifica da una repository/branch verso un'altra | Lo studente propone le modifiche dal proprio fork al branch del professore |
GitHub del Professore
│
Fork GitHub → GitHub
▼
Mio GitHub
│
clone GitHub → Git
▼
Git
│
modifica
│
add → commit tutto in Git
│
push Git → GitHub
▼
Mio GitHub
│
Pull Request GitHub → GitHub
▼
GitHub del Professore
Apri il repository del Professore su GitHub.
Clicca:
Fork
Avrai così una copia del progetto nel tuo account GitHub.
Il Professore ha creato due branch:
Classe4CI
Classe4DI
Usa il branch della tua classe.
Dal proprio Fork su GitHub:
Code → HTTPS
Copia l'indirizzo e, nel terminale:
git clone URL-DEL-TUO-FORKPoi entra nella cartella:
cd webpage-git-github-exerciseEsegui:
git statusPoi:
git remote -vDovresti vedere origin collegato al tuo GitHub.
origin → il mio GitHub
Per la 4CI:
git switch Classe4CIPer la 4DI:
git switch Classe4DIControlla:
git branchIl branch attivo è quello indicato da *.
Esempio:
* Classe4CI
main
Modifica:
index.html
Oppure aggiungi nuovi file.
Esegui:
git add index.htmloppure se hai più file:
git add .Poi:
git statusLa modifica dovrebbe risultare pronta per il commit.
Esegui:
git commit -m "Modifica index.html - Aggiunta intestazione tabella"ATTENZIONE tutti vedranno la descrizione, deve essere sintetica e significativa, ricordati che non è un salvataggio, rappresenta una funzionalità. Il commit salva la modifica nella cronologia locale di Git.
Esegui:
git pushIl percorso è:
Mio PC
│
│ git push
▼
Mio GitHub
Dopo aver fatto push, puoi creare la Pull Request in due modi.
-
Vai sul tuo Fork in GitHub.
-
Apri Pull requests.
-
Clicca New pull request.
-
Imposta:
- base repository:
webpage-git-github-exercise - base branch:
Classe4CIoppureClasse4DI - compare branch: la tua branch con le modifiche.
- base repository:
-
Clicca Create pull request.
Se hai installato GitHub CLI (gh):
gh pr create --base Classe4CI --head NOME-DELLA-TUA-BRANCH --title "Modifica pagina web" --body "Esercizio Git e GitHub"Per la classe 4DI:
gh pr create --base Classe4DI --head NOME-DELLA-TUA-BRANCH --title "Modifica pagina web" --body "Esercizio Git e GitHub"Nota: il comando
gh pr createcrea la Pull Request su GitHub. Con il solo comandogitnon esiste un comandogit pull-request.
Non creare necessariamente una nuova Pull Request.
Modifica nuovamente il file:
git add index.html
git commit -m "Corregge index.html"
git pushIl nuovo commit verrà aggiunto alla Pull Request già aperta.
Durante il lavoro utilizzerai soprattutto:
git statusControlla la situazione.
git add .Prepara le modifiche.
git commit -m "Descrizione"Salva una versione nella storia Git (locale).
git pushInvia il commit al tuo GitHub (remoto).
La sequenza fondamentale è:
MODIFICA
↓
git status
↓
git add .
↓
git commit
↓
git push
↓
Pull Request
Prima di eseguire altri comandi, controlla sempre:
git branchgit statusgit remote -vQuesti sono i quattro controlli fondamentali.
Controlla:
git statusPotresti avere già pubblicato il commit oppure potresti essere sul branch sbagliato.
Prima controlla:
git diffSe la modifica non è stata ancora committata e vuoi eliminarla:
git restore index.html
⚠️ Questo elimina le modifiche locali non ancora committate.
Impara questo percorso:
Fork → Clone → (Modifica → Add → Commit) → Push → Pull Request
e capire la differenza tra:
REMOTE
origin / upstream
BRANCH
main / Classe4CI / Classe4DI