fix: use id instead of slug for guides

main
parent c44b370652
commit 0dee1e8bff

@ -15,14 +15,19 @@ Git è un sistema di controllo di versione distribuito creato per gestire proget
### **Cos'è Git?** ### **Cos'è Git?**
- **Sistema di controllo di versione**: Gestisce le modifiche al codice sorgente nel tempo. - **Sistema di controllo di versione**: Gestisce le modifiche al codice sorgente nel tempo.
- **Distribuito**: Ogni sviluppatore ha una copia del repository. - **Distribuito**: Ogni sviluppatore ha una copia del repository.
- **Veloce e leggero**: Ottimizzato per la velocità e le prestazioni. - **Veloce e leggero**: Ottimizzato per la velocità e le prestazioni.
### **Perché usare Git?** ### **Perché usare Git?**
- **Tracciabilità**: Ogni modifica è tracciata e reversibile. - **Tracciabilità**: Ogni modifica è tracciata e reversibile.
- **Collaborazione**: Più persone possono lavorare sullo stesso progetto. - **Collaborazione**: Più persone possono lavorare sullo stesso progetto.
- **Backup**: Repository remoto per il backup del codice. - **Backup**: Repository remoto per il backup del codice.
- **Branching**: Lavoriamo su nuove funzionalità senza influenzare il codice principale. - **Branching**: Lavoriamo su nuove funzionalità senza influenzare il codice principale.
--- ---
@ -34,14 +39,19 @@ Git è un sistema di controllo di versione distribuito creato per gestire proget
### **Windows** ### **Windows**
1. Scarichiamo [Git for Windows](https://git-scm.com/download/win). 1. Scarichiamo [Git for Windows](https://git-scm.com/download/win).
2. Seguiamo il wizard di installazione. 2. Seguiamo il wizard di installazione.
3. Durante l'installazione: 3. Durante l'installazione:
- Selezioniamo "Git Bash" come terminale. - Selezioniamo "Git Bash" come terminale.
- Configuriamo un editor di testo (es. Vim o Nano). - Configuriamo un editor di testo (es. Vim o Nano).
### **macOS** ### **macOS**
1. Usiamo `brew` per installare Git: 1. Usiamo `brew` per installare Git:
```bash ```bash
brew install git brew install git
``` ```
@ -49,12 +59,16 @@ Git è un sistema di controllo di versione distribuito creato per gestire proget
### **Linux** ### **Linux**
1. Installiamo Git usando il nostro gestore di pacchetti: 1. Installiamo Git usando il nostro gestore di pacchetti:
- **Debian/Ubuntu**: - **Debian/Ubuntu**:
```bash ```bash
sudo apt update sudo apt update
sudo apt install git sudo apt install git
``` ```
- **Arch Linux**: - **Arch Linux**:
```bash ```bash
sudo pacman -S git sudo pacman -S git
``` ```
@ -83,6 +97,7 @@ git config --list
### **Repository** ### **Repository**
- **Repository locale**: Una cartella sul nostro computer che contiene il nostro progetto. - **Repository locale**: Una cartella sul nostro computer che contiene il nostro progetto.
- **Repository remoto**: Una versione del progetto ospitata su un server (es. GitHub, GitLab). - **Repository remoto**: Una versione del progetto ospitata su un server (es. GitHub, GitLab).
### **Branch** ### **Branch**
@ -162,6 +177,7 @@ Il comando **`git commit`** è utilizzato per registrare le modifiche nel reposi
#### Cosa succede dietro le quinte: #### Cosa succede dietro le quinte:
- Git salva lo stato dei file nell'area di staging in un commit, che viene aggiunto alla cronologia del repository locale. - Git salva lo stato dei file nell'area di staging in un commit, che viene aggiunto alla cronologia del repository locale.
- Ogni commit ha un identificatore unico (hash) che consente di risalire facilmente alle modifiche in qualsiasi momento. - Ogni commit ha un identificatore unico (hash) che consente di risalire facilmente alle modifiche in qualsiasi momento.
--- ---
@ -173,6 +189,7 @@ Il comando **`git commit`** è utilizzato per registrare le modifiche nel reposi
#### Come funziona: #### Come funziona:
1. Dopo aver fatto uno o più commit locali, dobbiamo inviare queste modifiche al repository remoto. 1. Dopo aver fatto uno o più commit locali, dobbiamo inviare queste modifiche al repository remoto.
2. Per fare questo, usiamo il comando **`git push`** seguito dal nome del remoto (di solito `origin` per il repository remoto di default) e dal nome del branch (di solito `main` o `master`, ma potrebbe essere qualsiasi altro nome di branch che stiamo utilizzando). 2. Per fare questo, usiamo il comando **`git push`** seguito dal nome del remoto (di solito `origin` per il repository remoto di default) e dal nome del branch (di solito `main` o `master`, ma potrebbe essere qualsiasi altro nome di branch che stiamo utilizzando).
Comando per inviare le modifiche: Comando per inviare le modifiche:
@ -184,6 +201,7 @@ Il comando **`git commit`** è utilizzato per registrare le modifiche nel reposi
#### Cosa succede dietro le quinte: #### Cosa succede dietro le quinte:
- Git confronta il nostro branch locale con il branch remoto. Se ci sono nuovi commit nel branch remoto che non sono ancora nel nostro branch locale, ci verrà richiesto di fare un **pull** per aggiornare prima di fare il push. - Git confronta il nostro branch locale con il branch remoto. Se ci sono nuovi commit nel branch remoto che non sono ancora nel nostro branch locale, ci verrà richiesto di fare un **pull** per aggiornare prima di fare il push.
- Il nostro repository locale viene sincronizzato con il remoto, rendendo le modifiche visibili a tutti gli altri che hanno accesso al repository remoto. - Il nostro repository locale viene sincronizzato con il remoto, rendendo le modifiche visibili a tutti gli altri che hanno accesso al repository remoto.
#### Errori comuni: #### Errori comuni:
@ -199,15 +217,19 @@ Il comando **`git commit`** è utilizzato per registrare le modifiche nel reposi
#### Come funziona: #### Come funziona:
1. Se altri collaboratori hanno fatto modifiche al repository remoto, possiamo ottenere queste modifiche con **`git pull`**. Questo comando aggiorna il nostro branch locale con le modifiche più recenti dal repository remoto. 1. Se altri collaboratori hanno fatto modifiche al repository remoto, possiamo ottenere queste modifiche con **`git pull`**. Questo comando aggiorna il nostro branch locale con le modifiche più recenti dal repository remoto.
2. Eseguiamo il comando: 2. Eseguiamo il comando:
```bash ```bash
git pull origin main git pull origin main
``` ```
In questo caso, `origin` è il nome del repository remoto (il nome predefinito quando cloni un repository), e `main` è il branch che vogliamo aggiornare. In questo caso, `origin` è il nome del repository remoto (il nome predefinito quando cloni un repository), e `main` è il branch che vogliamo aggiornare.
#### Cosa succede dietro le quinte: #### Cosa succede dietro le quinte:
- **`git fetch`** scarica tutte le modifiche dal repository remoto, ma non le integra ancora nel nostro codice. - **`git fetch`** scarica tutte le modifiche dal repository remoto, ma non le integra ancora nel nostro codice.
- **`git merge`** unisce le modifiche scaricate al nostro branch attuale, risolvendo eventuali conflitti, se necessario. - **`git merge`** unisce le modifiche scaricate al nostro branch attuale, risolvendo eventuali conflitti, se necessario.
#### Errori comuni: #### Errori comuni:
@ -245,13 +267,17 @@ git switch -c <nome-branch>
Per unire un branch nel branch principale (di solito chiamato `main`): Per unire un branch nel branch principale (di solito chiamato `main`):
1. Spostiamoci sul branch principale: 1. Spostiamoci sul branch principale:
```bash ```bash
git checkout main git checkout main
``` ```
2. Eseguiamo il merge del branch desiderato: 2. Eseguiamo il merge del branch desiderato:
```bash ```bash
git merge <nome-branch> git merge <nome-branch>
``` ```
Sostituiamo `<nome-branch>` con il nome del branch che vogliamo unire. Sostituiamo `<nome-branch>` con il nome del branch che vogliamo unire.
### Risoluzione dei conflitti ### Risoluzione dei conflitti
@ -259,15 +285,21 @@ Per unire un branch nel branch principale (di solito chiamato `main`):
Quando due persone modificano lo stesso file, Git può generare un conflitto. Ecco come risolverlo: Quando due persone modificano lo stesso file, Git può generare un conflitto. Ecco come risolverlo:
1. Identifichiamo il file in conflitto: 1. Identifichiamo il file in conflitto:
```bash ```bash
git status git status
``` ```
2. Modifichiamo manualmente il file per risolvere il conflitto. Cerchiamo i segni di conflitto (`<<<<<<<`, `=======`, `>>>>>>>`) e scegliamo quali modifiche mantenere. 2. Modifichiamo manualmente il file per risolvere il conflitto. Cerchiamo i segni di conflitto (`<<<<<<<`, `=======`, `>>>>>>>`) e scegliamo quali modifiche mantenere.
3. Aggiungiamo il file risolto allo stage: 3. Aggiungiamo il file risolto allo stage:
```bash ```bash
git add <file> git add <file>
``` ```
4. Concludiamo con un commit per salvare le modifiche risolte: 4. Concludiamo con un commit per salvare le modifiche risolte:
```bash ```bash
git commit git commit
``` ```
@ -285,10 +317,13 @@ git diff
### **Annullare modifiche** ### **Annullare modifiche**
1. **Prima del commit**: 1. **Prima del commit**:
```bash ```bash
git checkout -- <file> git checkout -- <file>
``` ```
2. **Dopo il commit**: 2. **Dopo il commit**:
```bash ```bash
git reset --soft HEAD~1 git reset --soft HEAD~1
``` ```
@ -304,7 +339,9 @@ git branch -d <nome-branch>
## **10. Best practices** ## **10. Best practices**
- Scriviamo messaggi di commit chiari e descrittivi. - Scriviamo messaggi di commit chiari e descrittivi.
- Creiamo branch per nuove funzionalità o bugfix. - Creiamo branch per nuove funzionalità o bugfix.
- Sincronizziamo frequentemente il nostro repository locale con quello remoto. - Sincronizziamo frequentemente il nostro repository locale con quello remoto.
--- ---
@ -312,5 +349,7 @@ git branch -d <nome-branch>
## **11. Risorse aggiuntive** ## **11. Risorse aggiuntive**
- [Documentazione ufficiale di Git](https://git-scm.com/doc) - [Documentazione ufficiale di Git](https://git-scm.com/doc)
- [Guida interattiva Learn Git Branching](https://learngitbranching.js.org/) - [Guida interattiva Learn Git Branching](https://learngitbranching.js.org/)
- [GitHub Docs](https://docs.github.com/) - [GitHub Docs](https://docs.github.com/)

@ -1,13 +1,13 @@
--- ---
import { getCollection } from 'astro:content' import { getCollection } from 'astro:content'
import ArticleLayout from '../../layouts/ArticleLayout.astro' import ArticleLayout from '@/layouts/ArticleLayout.astro'
export async function getStaticPaths() { export async function getStaticPaths() {
const guides = await getCollection('guides') const guides = await getCollection('guides')
return guides.map(entry => ({ return guides.map(entry => ({
params: { id: entry.slug }, params: { id: entry.data.id },
props: { entry }, props: { entry },
})) }))
} }

@ -13,7 +13,7 @@ const guides = await getCollection('guides')
guides.toReversed().map(guide => ( guides.toReversed().map(guide => (
<div class="card"> <div class="card">
<div class="title"> <div class="title">
<a href={`/guide/${guide.slug}`}>{guide.data.title}</a> <a href={`/guide/${guide.data.id}`}>{guide.data.title}</a>
</div> </div>
<div class="text">{guide.data.description}</div> <div class="text">{guide.data.description}</div>
<div class="tags"> <div class="tags">

Loading…
Cancel
Save