Git 23
🔀 Git & GitHub · Modulo 4 · Lezione 23
Discussions e Wiki 💬
Spazi di discussione · Documentazione collaborativa · Wiki del progetto · Discussions vs Issues
💬 Non tutto è un bug o una feature. A volte serve discutere un’idea, chiedere aiuto, proporre un cambiamento di direzione, o documentare come funziona un componente. Le issue non sono il posto giusto per questo — sono pensate per task concreti da chiudere. GitHub offre due strumenti dedicati: Discussions per le conversazioni e Wiki per la documentazione. In questa lezione impari quando usare ciascuno.
🎯 Obiettivi della lezione
- Capire quando usare Discussions, Issues e Wiki
- Attivare e configurare GitHub Discussions
- Creare una discussione con categorie
- Attivare e usare la Wiki del repository
- Scrivere pagine Wiki in Markdown
- Scegliere lo strumento giusto per ogni situazione
📖 1. Teoria
1.1 — Il problema: non tutto è un’issue
Le issue sono perfette per task concreti: “il form non funziona”, “aggiungere la pagina contatti”. Ma ci sono situazioni dove un’issue non è lo strumento giusto:
1.2 — La mappa: quale strumento per cosa
| Situazione | Strumento | Perché |
|---|---|---|
| Bug da correggere, feature da implementare | Issue | Task concreto con inizio e fine, collegabile a PR e commit |
| Domanda, proposta, annuncio, sondaggio | Discussion | Conversazione aperta senza “chiusura”, thread e reazioni |
| Guida, tutorial, architettura, setup | Wiki | Documentazione strutturata e permanente, navigabile |
| Istruzioni brevi per iniziare | README | Prima cosa che si vede nel repository, always visible |
1.3 — GitHub Discussions
GitHub Discussions è un forum integrato nel repository. È organizzato in categorie e supporta thread, reazioni, risposte accettate e sondaggi. È il posto giusto per conversazioni che non sono task.
Attivare Discussions
Funzionalità speciali delle Discussions
| Funzione | Come | A cosa serve |
|---|---|---|
| Risposta accettata | L’autore segna una risposta come “Answer” (solo in Q&A) | Chi arriva dopo vede subito la soluzione, senza leggere tutto il thread |
| Reazioni | Emoji sui post (👍 ❤️ 🎉 😄 🚀 👀) | Esprimere accordo senza scrivere “sono d’accordo” — meno rumore |
| Converti in issue | Menu ⋯ sulla discussione → “Convert to issue” | Quando un’idea diventa un task concreto da implementare |
| Pin | Menu ⋯ → “Pin discussion” | Fissare discussioni importanti in cima alla lista |
| Poll (sondaggio) | Nella categoria “Polls”, crei opzioni votabili | Decidere in team: “Quale colore per il logo? Blu / Rosso / Verde” |
1.4 — GitHub Wiki
La Wiki è uno spazio per documentazione strutturata — guide, tutorial, architettura, FAQ. A differenza del README (una singola pagina), la Wiki può avere molte pagine organizzate con una sidebar navigabile.
✅ Documentazione dell’architettura
✅ Glossario dei termini del progetto
✅ Convenzioni di codice
✅ FAQ per i nuovi contributori
✅ Tutorial passo per passo
❌ Discussioni e domande → usa Discussions
❌ Istruzioni brevi → usa README
❌ Documentazione inline nel codice → usa commenti
❌ Changelog → usa Release notes
Attivare e usare la Wiki
1.5 — Struttura consigliata per una Wiki scolastica
→ Installazione
→ Architettura
→ Guida di stile
→ FAQ
→ Il team
La pagina _Sidebar
## 📚 Navigazione
– [[Home]]
– [[Installazione]]
– [[Architettura]]
– [[Guida di stile]]
– [[FAQ]]
– [[Il team]]
[[Nome pagina]] crea un link interno alla Wiki. La pagina _Sidebar appare automaticamente a lato di ogni pagina.📌 La Wiki è un repository Git separato! Ogni Wiki ha il suo repository Git che puoi clonare: git clone git@github.com:utente/progetto.wiki.git. Puoi scrivere le pagine in locale con il tuo editor preferito, committare e pushare — esattamente come fai con il codice. Utile per modifiche massive o per chi preferisce lavorare offline.
1.6 — Discussions vs Issues: la regola pratica
| Esempio | Issue? | Discussion? |
|---|---|---|
| “Il pulsante di login non funziona su Safari” | ✅ | — |
| “Che ne dite se usiamo TypeScript invece di JavaScript?” | — | ✅ |
| “Aggiungere validazione email al form di registrazione” | ✅ | — |
| “Come si configura l’ambiente di sviluppo su Windows?” | — | ✅ (Q&A) |
| “Quale colore usiamo per lo sfondo? Votiamo.” | — | ✅ (Poll) |
| “Grande lavoro ragazzi — v1.0 rilasciata!” | — | ✅ (Announce) |
💻 2. Esempi guidati
Esempio A — Creare una Discussion “Ideas” e convertirla in issue
Esempio B — Creare una Wiki con 3 pagine
Benvenuto nella documentazione del progetto!
## Pagine
– [[Installazione]] — Come far partire il progetto in locale
– [[Architettura]] — Struttura del progetto e tecnologie
[[Home]], [[Installazione]], [[Architettura]]. Ora ogni pagina ha la navigazione laterale.Esempio C — Sondaggio con Polls
🏋️ 3. Esercizi
🟢 Esercizio 1 — Attiva Discussions e crea il primo post (Facile)
b) Crea una discussione nella categoria “General” con un saluto al team: “Benvenuti nel nostro progetto!”.
c) Crea una discussione nella categoria “Q&A” con una domanda sul progetto.
d) Rispondi alla tua stessa domanda e segnala la risposta come “Answer”.
e) Aggiungi una reazione (emoji) a un post.
🔵 Esercizio 2 — Crea la Wiki del progetto (Medio)
b) Crea una pagina Installazione con i passi per far partire il progetto in locale (clone, dipendenze, avvio).
c) Crea una pagina Architettura con la struttura delle cartelle del progetto.
d) Crea la pagina _Sidebar con i link a tutte le pagine.
e) Naviga la Wiki: la sidebar appare a sinistra? I link funzionano?
🟠 Esercizio 3 — Da idea a issue (Medio)
b) Chiedi a un compagno (o simula tu) di commentare con feedback.
c) Dopo la “discussione”, converti la discussion in issue: ⋯ → “Convert to issue”.
d) L’issue creata ha un link alla discussione originale? La discussione ha un link all’issue?
e) Assegna l’issue e aggiungila al Project Board.
🟣 Esercizio 4 — Setup completo della comunicazione di team (Difficile)
a) Discussions: attiva e crea una categoria personalizzata “Decisioni di team” per le scelte importanti.
b) Crea una discussione pinned (Announcements): “Regole del progetto — leggere prima di iniziare”.
c) Crea un sondaggio (Poll): “Con quale frequenza facciamo stand-up? Ogni giorno / 2 volte a settimana / 1 volta a settimana”.
d) Wiki: crea 4 pagine (Home, Installazione, Guida di stile, FAQ) + _Sidebar.
e) Nella pagina “Guida di stile” della Wiki, documenta: naming dei branch, formato dei commit, regole CSS.
f) Nella FAQ, aggiungi almeno 3 domande e risposte che un nuovo membro del team potrebbe avere.
g) Condividi il link della Wiki con il team.
❓ 4. Quiz di verifica
1. Come decidi se usare un’issue o una discussion?
Mostra risposta
Il test è: “Si può chiudere?”. Se la risposta è sì — è un task concreto con inizio e fine (bug da correggere, feature da implementare) — usa un’issue. Se la risposta è no — è una conversazione aperta, una domanda, un’idea, un annuncio, un sondaggio — usa una discussion. Le issue sono per fare; le discussion sono per parlare. Se durante una discussion emerge un task concreto, puoi convertire la discussion in issue con un click.
2. Cosa fa “Convert to issue” su una Discussion?
Mostra risposta
Crea una nuova issue a partire dalla discussion, preservando il titolo e il contenuto. La discussion originale viene collegata all’issue con un link bidirezionale: nell’issue vedi il link alla discussione (contesto), nella discussione vedi il link all’issue (azione). È il workflow ideale per le idee: prima discuti (Discussion → Ideas), poi se il team decide di procedere, converti in issue (task assegnabile e tracciabile).
3. Cos’è la pagina _Sidebar nella Wiki e a cosa serve?
Mostra risposta
È una pagina speciale che viene mostrata a lato di ogni pagina della Wiki come menu di navigazione. Senza _Sidebar, ogni pagina è isolata — il lettore non sa quali altre pagine esistono. Con _Sidebar, hai una navigazione permanente con link a tutte le sezioni. La sintassi per i link interni è [[Nome pagina]]. Il nome deve corrispondere esattamente al titolo della pagina di destinazione. La _Sidebar è una pagina Wiki normale — si crea con “New page” e titolo “_Sidebar”.
4. In cosa differisce la Wiki dal README?
Mostra risposta
Il README è un singolo file (README.md) che appare nella pagina principale del repository — è la “copertina” del progetto, perfetta per una panoramica breve. La Wiki è uno spazio con molte pagine organizzate con navigazione — perfetta per documentazione dettagliata e strutturata. Il README è sempre visibile (sotto la lista dei file), la Wiki è in una tab separata. In pratica: il README dice “cos’è e come iniziare”, la Wiki dice “come funziona nel dettaglio”. Per progetti piccoli, basta il README. Per progetti medi-grandi, servono entrambi.
5. Come si clona la Wiki per lavorarci in locale?
Mostra risposta
La Wiki è un repository Git separato con URL che termina in .wiki.git. Per clonarla: git clone git@github.com:utente/progetto.wiki.git. Ogni pagina della Wiki è un file Markdown nella cartella. Puoi modificare i file in locale con il tuo editor, committare e pushare — le modifiche appaiono immediatamente nella Wiki su GitHub. Questo è utile per modifiche massive o per chi preferisce lavorare offline con un editor di testo piuttosto che nell’interfaccia web di GitHub.
6. Qual è la differenza tra la categoria “Q&A” e “General” nelle Discussions?
Mostra risposta
In Q&A, l’autore della discussione può segnare una risposta come “Answer” — la risposta accettata viene evidenziata in verde e appare in cima, così chi arriva dopo vede subito la soluzione senza leggere tutto il thread. La discussione viene anche contrassegnata come “Answered”. In General, non c’è il concetto di risposta accettata — è una conversazione libera dove tutti i commenti hanno lo stesso peso. Usa Q&A per domande con una risposta definita, General per discussioni aperte senza una risposta “giusta”.
📚 Riepilogo della lezione
- La regola: “Si può chiudere?” → Issue. Altrimenti → Discussion.
- Discussions: forum integrato con categorie (Announcements, General, Ideas, Q&A, Polls, Show and tell)
- Q&A ha risposte accettabili; Polls ha sondaggi votabili
- “Convert to issue”: un’idea discussa diventa un task concreto con un click
- Wiki: documentazione strutturata in più pagine con navigazione
- Pagina _Sidebar: menu laterale con link
[[Nome pagina]] - La Wiki è un repo Git separato — clonabile e modificabile in locale
- Mappa: Issue = task · Discussion = conversazione · Wiki = documentazione · README = panoramica
Prossima lezione →
Lezione 24 — Template per Issue e PR
Standardizzare la comunicazione del team. Template avanzati con YAML.
PR template. Automatizzare le convenzioni.
Corso Git & GitHub · Per studenti e insegnanti · Lezione 23 di 45