From 0dee1e8bff65fbc70fc08244a8b1c7da09d10ff2 Mon Sep 17 00:00:00 2001 From: Antonio De Lucreziis Date: Sun, 17 Nov 2024 22:07:25 +0100 Subject: [PATCH] fix: use id instead of slug for guides --- src/content/guides/2024-02-29-git-101.md | 39 ++++++++++++++++++++++++ src/pages/guide/[id].astro | 4 +-- src/pages/guide/index.astro | 2 +- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/content/guides/2024-02-29-git-101.md b/src/content/guides/2024-02-29-git-101.md index 7d1bb82..18451f6 100644 --- a/src/content/guides/2024-02-29-git-101.md +++ b/src/content/guides/2024-02-29-git-101.md @@ -15,14 +15,19 @@ Git è un sistema di controllo di versione distribuito creato per gestire proget ### **Cos'è Git?** - **Sistema di controllo di versione**: Gestisce le modifiche al codice sorgente nel tempo. + - **Distribuito**: Ogni sviluppatore ha una copia del repository. + - **Veloce e leggero**: Ottimizzato per la velocità e le prestazioni. ### **Perché usare Git?** - **Tracciabilità**: Ogni modifica è tracciata e reversibile. + - **Collaborazione**: Più persone possono lavorare sullo stesso progetto. + - **Backup**: Repository remoto per il backup del codice. + - **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** 1. Scarichiamo [Git for Windows](https://git-scm.com/download/win). + 2. Seguiamo il wizard di installazione. + 3. Durante l'installazione: + - Selezioniamo "Git Bash" come terminale. + - Configuriamo un editor di testo (es. Vim o Nano). ### **macOS** 1. Usiamo `brew` per installare Git: + ```bash brew install git ``` @@ -49,12 +59,16 @@ Git è un sistema di controllo di versione distribuito creato per gestire proget ### **Linux** 1. Installiamo Git usando il nostro gestore di pacchetti: + - **Debian/Ubuntu**: + ```bash sudo apt update sudo apt install git ``` + - **Arch Linux**: + ```bash sudo pacman -S git ``` @@ -83,6 +97,7 @@ git config --list ### **Repository** - **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). ### **Branch** @@ -162,6 +177,7 @@ Il comando **`git commit`** è utilizzato per registrare le modifiche nel reposi #### 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. + - 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: 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). 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: - 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. #### Errori comuni: @@ -199,15 +217,19 @@ Il comando **`git commit`** è utilizzato per registrare le modifiche nel reposi #### 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. + 2. Eseguiamo il comando: + ```bash 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. #### Cosa succede dietro le quinte: - **`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. #### Errori comuni: @@ -245,13 +267,17 @@ git switch -c Per unire un branch nel branch principale (di solito chiamato `main`): 1. Spostiamoci sul branch principale: + ```bash git checkout main ``` + 2. Eseguiamo il merge del branch desiderato: + ```bash git merge ``` + Sostituiamo `` con il nome del branch che vogliamo unire. ### 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: 1. Identifichiamo il file in conflitto: + ```bash git status ``` + 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: + ```bash git add ``` + 4. Concludiamo con un commit per salvare le modifiche risolte: + ```bash git commit ``` @@ -285,10 +317,13 @@ git diff ### **Annullare modifiche** 1. **Prima del commit**: + ```bash git checkout -- ``` + 2. **Dopo il commit**: + ```bash git reset --soft HEAD~1 ``` @@ -304,7 +339,9 @@ git branch -d ## **10. Best practices** - Scriviamo messaggi di commit chiari e descrittivi. + - Creiamo branch per nuove funzionalità o bugfix. + - Sincronizziamo frequentemente il nostro repository locale con quello remoto. --- @@ -312,5 +349,7 @@ git branch -d ## **11. Risorse aggiuntive** - [Documentazione ufficiale di Git](https://git-scm.com/doc) + - [Guida interattiva Learn Git Branching](https://learngitbranching.js.org/) + - [GitHub Docs](https://docs.github.com/) diff --git a/src/pages/guide/[id].astro b/src/pages/guide/[id].astro index eceb93f..1c20ac3 100644 --- a/src/pages/guide/[id].astro +++ b/src/pages/guide/[id].astro @@ -1,13 +1,13 @@ --- import { getCollection } from 'astro:content' -import ArticleLayout from '../../layouts/ArticleLayout.astro' +import ArticleLayout from '@/layouts/ArticleLayout.astro' export async function getStaticPaths() { const guides = await getCollection('guides') return guides.map(entry => ({ - params: { id: entry.slug }, + params: { id: entry.data.id }, props: { entry }, })) } diff --git a/src/pages/guide/index.astro b/src/pages/guide/index.astro index 5a76469..60160d0 100644 --- a/src/pages/guide/index.astro +++ b/src/pages/guide/index.astro @@ -13,7 +13,7 @@ const guides = await getCollection('guides') guides.toReversed().map(guide => (
{guide.data.description}