<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Alessandro Cipriani - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Impara a programmare gratuitamente! Tutorial di programmazione su Python, JavaScript, Linux e molto altro. ]]>
        </description>
        <link>https://www.freecodecamp.org/italian/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Alessandro Cipriani - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/italian/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 09 May 2026 13:41:48 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/italian/news/author/alessandro/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Come Creare una App React con un Back End Node: La Guida Completa ]]>
                </title>
                <description>
                    <![CDATA[ Un front end React collegato a un back end Node è una combinazione solida per realizzare qualsiasi applicazione. Questa guida è stata pensata per aiutarti a creare progetti full-stack con React nel modo più semplice possibile. Vediamo come impostare da zero un intero progetto con React e Node e come ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/come-creare-una-app-react-con-un-backend-node-la-guida-completa/</link>
                <guid isPermaLink="false">632d6a41f289f3074339576f</guid>
                
                    <category>
                        <![CDATA[ React ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Alessandro Cipriani ]]>
                </dc:creator>
                <pubDate>Tue, 04 Oct 2022 05:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/09/how-to-build-a-react-app-with-a-node-backend-alt.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/how-to-create-a-react-app-with-a-node-backend-the-complete-guide/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Create a React App with a Node Backend: The Complete Guide</a>
      </p><p>Un front end React collegato a un back end Node è una combinazione solida per realizzare qualsiasi applicazione.</p><p>Questa guida è stata pensata per aiutarti a creare progetti full-stack con React nel modo più semplice possibile.</p><p>Vediamo come impostare da zero un intero progetto con React e Node e come distribuirlo sul web.</p><h2 id="strumenti-necessari"><strong>Strumenti necessari</strong></h2><ol><li>Assicurati che Node e NPM siano installati sul tuo computer. Puoi scaricarli entrambi da <a href="https://nodejs.org/">nodejs.org</a> (NPM è incluso nell'installazione di Node)</li><li>Utilizza un editor di codice di tua scelta. Io sto usando e personalmente consiglio di usare VSCode. È possibile scaricare VSCode all'indirizzo <a href="https://code.visualstudio.com/">code.visualstudio.com</a>.</li><li>Assicurati di avere Git installato sul computer. Questo è necessario per distribuire la nostra applicazione con Heroku. È possibile ottenerlo all'indirizzo <a href="https://git-scm.com/">git-scm.com</a></li><li>Un account su <a href="https://heroku.com/">heroku.com</a>. Utilizzeremo Heroku per pubblicare la nostra applicazione sul web in modo completamente gratuito.</li></ol><p><em>Nota: dal 28 Novembre 2022 il servizio gratuito di Heroku non sarà più disponibile.</em></p><h2 id="passo-1-creare-il-back-end-node-express-">Passo 1: Creare il back end Node (Express)</h2><p>Per prima cosa, crea una cartella per il progetto chiamata <code>react-node-app</code> (per esempio).</p><p>Quindi, trascina la cartella nell'editor di codice.</p><p>Per creare il nostro progetto Node, esegui il seguente comando nel terminale:</p><pre><code class="language-bash">npm init -y</code></pre><p>Questo creerà un file package.json che ci permetterà di tenere traccia di tutti gli script dell'applicazione e di gestire le dipendenze di cui l'applicazione Node ha bisogno.</p><p>Il nostro codice server si troverà in una cartella con lo stesso nome: <code>server</code>. Creiamo questa cartella.</p><p>Al suo interno, collocheremo un singolo file, dal quale faremo partire il nostro server: <code>index.js</code>.</p><p>Utilizzeremo il framework Express per creare un semplice web server, che verrà eseguito sulla porta 3001 se non specificato alcun valore per la variabile d'ambiente <code>PORT</code> (Heroku imposterà questo valore quando distribuiremo la nostra applicazione).</p><pre><code class="language-js">// server/index.js

const express = require("express");

const PORT = process.env.PORT || 3001;

const app = express();

app.listen(PORT, () =&gt; {
  console.log(`Server listening on ${PORT}`);
});</code></pre><p>Successivamente, installeremo Express come dipendenza eseguendo nel nostro terminale:</p><pre><code class="language-bash">npm i express</code></pre><p>Dopodiché, creeremo uno script in package.json che avvierà il nostro server web quando eseguiremo il comando <code>npm start</code>:</p><pre><code class="language-json">// server/package.json

...
"scripts": {
  "start": "node server/index.js"
},
...</code></pre><p>Finalmente possiamo eseguire la nostra applicazione utilizzando questo script eseguendo <code>npm start</code> nel nostro terminale e dovremmo vedere che è in esecuzione sulla porta 3001:</p><pre><code class="language-bash">npm start

&gt; node server/index.js

Server listening on 3001</code></pre><figure class="kg-card kg-image-card"><img src="https://reedbarger.nyc3.digitaloceanspaces.com/how-to-create-a-react-app-with-a-node-backend/clip-1.gif" class="kg-image" alt="Clip 1" width="600" height="400" loading="lazy"></figure><h2 id="passo-2-creare-un-endpoint-api">Passo 2: Creare un endpoint API</h2><p>Vogliamo utilizzare il nostro server Node con Express come un'API, in modo che possa fornire dati alla nostra applicazione React, modificarli o eseguire altre operazioni che solo un server può fare.</p><p>Nel nostro caso, invieremo semplicemente un messaggio alla nostra applicazione React che dice "Hello from server!" in un oggetto JSON.</p><p>Il codice sottostante crea un endpoint per la rotta <code>/api</code>.</p><p>Se la nostra applicazione React effettua una richiesta GET a tale rotta, risponderemo (usando <code>res</code>, che sta per response) con il nostro dato in formato JSON:</p><pre><code class="language-js">// server/index.js
...

app.get("/api", (req, res) =&gt; {
  res.json({ message: "Hello from server!" });
});

app.listen(PORT, () =&gt; {
  console.log(`Server listening on ${PORT}`);
});</code></pre><p><em>Nota: assicurati di posizionare questa funzione al di sopra della funzione</em> <code>app.listen</code><em>.</em></p><p>Poiché abbiamo apportato delle modifiche al codice Node, dobbiamo riavviare il nostro server.</p><p>Per farlo, devi terminare lo script di avvio nel terminale premendo <code>Command</code>/<code>Ctrl</code> + <code>C</code>. Quindi devi riavviare eseguendo nuovamente <code>npm start</code>.</p><p>Per verificarlo, possiamo semplicemente visitare <code>http://localhost:3001/api</code> nel nostro browser e visualizzare il nostro messaggio:</p><figure class="kg-card kg-image-card"><img src="https://reedbarger.nyc3.digitaloceanspaces.com/how-to-create-a-react-app-with-a-node-backend/clip-2.gif" class="kg-image" alt="Clip 2" width="600" height="400" loading="lazy"></figure><h2 id="passo-3-creare-il-front-end-react"><strong>Passo 3: Creare il front end React</strong></h2><p>Dopo aver creato il back end, passiamo al front end.</p><p>Apriamo un'altra scheda di terminale e usiamo create-react-app per creare un nuovo progetto React con il nome <code>client</code>:</p><pre><code class="language-bash">npx create-react-app client</code></pre><p>Dopo di che, avremo un'applicazione React con tutte le sue dipendenze installate.</p><p>L'unica modifica da fare è aggiungere una proprietà chiamata <code>proxy</code> al nostro file package.json.</p><p>Questo ci permetterà di fare richieste al nostro server Node senza dover fornire l'origine su cui è in esecuzione (http://localhost:3001) ogni volta che facciamo una richiesta di rete:</p><pre><code class="language-bash">// client/package.json

...
"proxy": "http://localhost:3001",
...</code></pre><p>Quindi possiamo avviare la nostra applicazione React eseguendo il suo script di avvio, che è lo stesso del nostro server Node. Per prima cosa assicuriamoci di fare un <code>cd</code> nella cartella client appena creata.</p><p>Dopodiché, si avvierà su <code>localhost:3000</code>:</p><pre><code class="language-bash">cd client
npm start

Compiled successfully!

You can now view client in the browser.

Local:            http://localhost:3000</code></pre><figure class="kg-card kg-image-card"><img src="https://reedbarger.nyc3.digitaloceanspaces.com/how-to-create-a-react-app-with-a-node-backend/clip-3.gif" class="kg-image" alt="Clip 3" width="600" height="400" loading="lazy"></figure><h2 id="passo-4-effettuare-richieste-http-da-react-a-node"><strong>Passo 4: </strong>Effettuare richieste HTTP da React a Node</h2><p>Ora che abbiamo un'applicazione React funzionante, vogliamo usarla per interagire con la nostra API.</p><p>Vediamo come recuperare i dati dall'endpoint <code>/api</code> che abbiamo creato in precedenza.</p><p>Per farlo, possiamo andare dal nostro componente <code>App.js</code> nella cartella <code>src</code> e fare una richiesta HTTP usando useEffect.</p><p>Faremo una semplice richiesta GET, utilizzando l'API Fetch, al nostro back end e ci verranno restituiti i dati in formato JSON.</p><p>Una volta che i dati ci saranno restituiti, otterremo la proprietà message (per avere il saluto che abbiamo inviato dal server) e la metteremo in una variabile di stato chiamata <code>data</code>.</p><p>Questo ci consentirà di visualizzare il messaggio nella nostra pagina, se presente. Utilizziamo una condizione nel JSX per dire che se i nostri dati non sono ancora presenti, deve essere mostrato il testo "Loading...".</p><pre><code class="language-js">// client/src/App.js

import React from "react";
import logo from "./logo.svg";
import "./App.css";

function App() {
  const [data, setData] = React.useState(null);

  React.useEffect(() =&gt; {
    fetch("/api")
      .then((res) =&gt; res.json())
      .then((data) =&gt; setData(data.message));
  }, []);

  return (
    &lt;div className="App"&gt;
      &lt;header className="App-header"&gt;
        &lt;img src={logo} className="App-logo" alt="logo" /&gt;
        &lt;p&gt;{!data ? "Loading..." : data}&lt;/p&gt;
      &lt;/header&gt;
    &lt;/div&gt;
  );
}

export default App;</code></pre><figure class="kg-card kg-image-card"><img src="https://reedbarger.nyc3.digitaloceanspaces.com/how-to-create-a-react-app-with-a-node-backend/clip-4.gif" class="kg-image" alt="Clip 5" width="600" height="400" loading="lazy"></figure><h2 id="passo-5-distribuire-la-app-sul-web-utilizzando-heroku"><strong>Passo 5: Distribuire la app sul web utilizzando Heroku</strong></h2><p>Infine, distribuiremo la nostra applicazione sul web.</p><p>Per prima cosa, all'interno della nostra cartella client, assicuriamoci di rimuovere il repository Git che viene inizializzato automaticamente da create-react-app.</p><p>Questo è essenziale per distribuire la nostra applicazione, perché inizializzeremo un repository Git nella cartella principale del nostro progetto (<code>react-node-app</code>), non nel <code>client</code>:</p><pre><code class="language-bash">cd client
rm -rf .git</code></pre><p>Al momento del deployment, sia il back end Node che il front end React saranno serviti sullo stesso dominio (cioè mycoolapp.herokuapp.com).</p><p>Vediamo come saranno gestite le nostre richieste &nbsp;dall'API di Node. Il nostro scopo è quello di visualizzare l'applicazione React quando viene richiesta dall'utente (per esempio, quando si va alla home page della nostra applicazione).</p><p>Possiamo farlo aggiungendo al file <code>server/index.js</code> il seguente codice:</p><pre><code class="language-js">// server/index.js
const path = require('path');
const express = require('express');

...

// Chiede a Node di servire i file per la nostra applicazione React
app.use(express.static(path.resolve(__dirname, '../client/build')));

// gestisce richieste GET per la rotta /api
app.get("/api", (req, res) =&gt; {
  res.json({ message: "Hello from server!" });
});

// Tutte le altre richieste di tipo GET non gestite dal metodo precedente, restituiranno l'applicazione REACT
app.get('*', (req, res) =&gt; {
  res.sendFile(path.resolve(__dirname, '../client/build', 'index.html'));
});</code></pre><p>Questo codice permetterà a Node di accedere al nostro progetto React di cui si è effettuato precedentemente un <code>build</code>, utilizzando la funzione <code>express.static</code> per i file statici.</p><p>Se arriva una richiesta GET che non è gestita dalla rotta <code>/api</code> route, il server risponderà con la nostra applicazione React.</p><p><strong>Questo codice consente alle nostre applicazioni React e Node di essere distribuite insieme sullo stesso dominio<strong>.</strong></strong></p><p>Possiamo comunicare alla nostra applicazione Node come farlo aggiungendo uno script di compilazione <code>build</code> al file package.json del server, che costruisce la nostra applicazione React per la produzione:</p><pre><code class="language-json">// server/package.json

...
"scripts": {
    "start": "node server/index.js",
    "build": "cd client &amp;&amp; npm install &amp;&amp; npm run build"
  },
...</code></pre><p>Consiglio anche di aggiungere un ulteriore campo chiamato "engines", in cui specificare la versione di Node che stiamo usando per costruire il progetto. Questa sarà usata per la distribuzione.</p><p>È possibile ottenere la versione di Node eseguendo <code>node -v</code> e inserire il risultato in "engines". (ad esempio 14.15.4):</p><pre><code class="language-json">// server/package.json

"engines": {
  "node": "la-tua-versione-di-node"
}</code></pre><p>Dopo di che, siamo pronti a eseguire il deployment utilizzando Heroku. Assicuriamoci di avere un account su Heroku.com.</p><p>Una volta effettuato l'accesso e visualizzata la dashboard, dovremo selezionare New &gt; Create New App e fornire un nome univoco all'applicazione.</p><p>Una volta fatto ciò, dovremo installare la Heroku CLI sul nostro computer, in modo da poter distribuire l'applicazione ogni volta che apportiamo modifiche utilizzando Git. È possibile installare la CLI eseguendo:</p><pre><code class="language-bash">npm i -g heroku</code></pre><p>Una volta installata, dobbiamo accedere a Heroku tramite la CLI utilizzando il comando <code>heroku login</code>:</p><pre><code class="language-bash">heroku login

Press any key to login to Heroku</code></pre><p>Una volta effettuato l'accesso, è sufficiente seguire le istruzioni di distribuzione per l'applicazione creata nella scheda "Deploy".</p><p>Con i quattro comandi seguenti, inizializzeremo un nuovo repository Git per il nostro progetto, vi aggiungeremo dei file, ne faremo il commit e inseriremo una destinazione remota Git per Heroku.</p><pre><code>git init
heroku git:remote -a insert-your-app-name-here
git add .
git commit -am "Deploy app to Heroku"</code></pre><p>L'ultimo passo consiste nel pubblicare la nostra applicazione, effettuando il <code>push</code> del commit sul Git di Heroku appena aggiunto:</p><pre><code class="language-bash">git push heroku master</code></pre><p>Congratulazioni! La nostra applicazione full-stack React e Node è in funzione! 🎉</p><figure class="kg-card kg-image-card"><img src="https://reedbarger.nyc3.digitaloceanspaces.com/how-to-create-a-react-app-with-a-node-backend/clip-5.gif" class="kg-image" alt="Clip 5" width="600" height="400" loading="lazy"></figure><p>Quando desideri apportare modifiche all'applicazione (e distribuirle), è sufficiente utilizzare Git per aggiungere i file, eseguire il commit e quindi eseguire il push sul nostro sito Heroku:</p><pre><code class="language-bash">git add .
git commit -m "my commit message"
git push heroku master</code></pre><p>Grazie per aver letto questo articolo!</p><p>Buona programmazione.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Il processo di avvio di Linux - 6 fasi descritte in dettaglio ]]>
                </title>
                <description>
                    <![CDATA[ Un sistema operativo (OS) è un software di basso livello che gestisce le risorse, controlla le periferiche e fornisce servizi di base ad altri software. In Linux il processo di avvio si divide in 6 fasi distinte. 1. BIOS BIOS è l'acronimo di Basic Input/Output System. In altre parole, il ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/il-processo-di-avvio-di-linux-6-fasi-descritte-in-dettaglio/</link>
                <guid isPermaLink="false">63246f60f91c6d07327f6e08</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Alessandro Cipriani ]]>
                </dc:creator>
                <pubDate>Tue, 27 Sep 2022 05:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/09/5f9c9cef740569d1a4ca34fc.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/the-linux-booting-process-6-steps-described-in-detail/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">The Linux Booting Process - 6 Steps Described in Detail</a>
      </p><p>Un sistema operativo (OS) è un software di basso livello che gestisce le risorse, controlla le periferiche e fornisce servizi di base ad altri software. In Linux il processo di avvio si divide in 6 fasi distinte.</p><h3 id="1-bios"><strong>1. BIOS</strong></h3><p>BIOS è l'acronimo di Basic Input/Output System. In altre parole, il BIOS carica ed esegue il boot loader presente nel Master Boot Record (MBR).</p><p>Quando si accende il computer per la prima volta, il BIOS esegue innanzitutto alcuni controlli di integrità dell'unità disco o dell'unità SSD.</p><p>Successivamente, il BIOS cerca, carica ed esegue il programma di boot loader, che si trova nel Master Boot Record (MBR). L'MBR si trova talvolta su una chiavetta USB o su un CD-ROM, come nel caso di un'installazione live di Linux.</p><p>Una volta individuato il programma di boot loader, questo viene caricato in memoria e il BIOS gli affida il controllo del sistema. &nbsp;</p><h3 id="2-mbr"><strong>2. MBR</strong></h3><p>MBR è l'acronimo di Master Boot Record ed è responsabile del caricamento e dell'esecuzione del boot loader GRUB.</p><p>L'MBR si trova nel primo settore del disco di avvio, che di solito è <code>/dev/hda</code> o <code>/dev/sda</code>, variabile a seconda dell'hardware. L'MBR contiene anche informazioni su GRUB, o LILO in sistemi molto vecchi.</p><h3 id="3-grub"><strong>3. GRUB</strong></h3><p>GNU GRUB, abbreviazione di GNU GRand Unified Bootloader, è il boot loader più diffuso nella maggior parte dei sistemi Linux moderni.</p><p>La schermata iniziale di GRUB è spesso la prima cosa che si vede quando si avvia il computer. Include un semplice menu in cui è possibile selezionare alcune opzioni. Se sono presenti più immagini del kernel, è possibile utilizzare la tastiera per selezionare quella con cui si desidera avviare il sistema. Per impostazione predefinita, viene selezionata l'immagine del kernel più recente.<br><br>Il sistema da all'utente alcuni secondi per effettuare una scelta. Se la scelta non viene effettuata, verrà caricata l'immagine del kernel predefinita.</p><p>Generalmente la posizione del file di configurazione di GRUB si trova <code>/boot/grub/grub.conf</code> o <code>/etc/grub.conf</code>. Di seguito un esempio di contenuto di un file <code>grub.conf</code>:</p><pre><code class="language-text">#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5PAE)
      root (hd0,0)
      kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
      initrd /boot/initrd-2.6.18-194.el5PAE.img</code></pre><p><strong>4. Kernel</strong></p><p>Il kernel è letteralmente il nucleo di un sistema operativo e quindi l'interfaccia tra software e hardware. È il componente centrale di un sistema operativo: permanentemente necessario e costantemente in uso.<br><br>In questa fase del processo di avvio, il kernel selezionato da GRUB si collega innanzitutto con il file system di root specificato nel file <code>grub.conf</code>. Quindi esegue il programma <code>/sbin/init</code>, che è sempre il primo programma a essere eseguito. Infatti il suo id di processo (PID) è sempre 1. Il kernel stabilisce quindi il file system di root, che è stato specificato nel file <code>grub.conf</code>.<br><br>Il kernel crea quindi un file system root temporaneo utilizzando Initial RAM Disk (initrd) fino a quando non viene montato il file system reale.</p><h3 id="5-init"><strong>5. Init</strong></h3><p>In questa fase, il sistema esegue una sequenza di azioni in base a livello di esecuzione (Runlevel). I livelli di esecuzione di Linux sono definiti in un file di init, che di solito si trova in <code>/etc/inittab</code>.<br>I sistemi Linux moderni utilizzano invece systemd per scegliere il livello di esecuzione. Fonte <a href="https://www.tecmint.com/change-runlevels-targets-in-systemd/">TecMint</a>, questi sono i livelli di esecuzione disponibili:</p><blockquote><strong>Run level 0</strong> Questo runlevel avvia la sequenza di arresto del sistema o shutdown (<strong><strong>poweroff.target</strong></strong>).<br><br><strong>Run level 1</strong> Questo runlevel rappresenta la modalità singolo utente, nessun altro utente può collegarsi, il servizio di rete è disabilitato (<strong><strong>rescue.target</strong></strong>).<br><br><strong>Run level</strong> <strong>3</strong> &nbsp;In genere è quello predefinito quando si opera in modalità testuale, tutti i servizi sono attivi (<strong><strong>multi-user.target</strong></strong>).<br><br><strong>Run level 5</strong> &nbsp;È il runlevel predefinito quando si vuole avviare Linux in modalità grafica (<strong><strong>graphical.target</strong></strong>).<br><br><strong>Run level 6</strong> Il runlevel 6 è quello di reboot (<strong><strong>reboot.target</strong></strong>).<br><br><strong>Emergency</strong> È il runlevel di emergenza (<strong>emergency.target)</strong>.</blockquote><p><code>systemd</code> si occuperà di eseguire programmi e/o servizi in base al loro runlevel. &nbsp; &nbsp;</p><h3 id="6-runlevel"><strong>6. Runlevel</strong></h3><p>A seconda della distribuzione Linux installata, è possibile che vengano avviati diversi servizi a seconda del livello di esecuzione (Runlevel). Ad esempio, si potrebbe notare <code>starting sendmail …. OK</code>.<br><br>Ognuno dei 6 livelli di esecuzione sopra descritti ha una propria directory e ogni directory contiene un insieme di programmi e/o servizi che devono essere eseguiti, le directory sono:</p><ul><li>Run level 0 – <code>/etc/rc0.d/</code></li><li>Run level 1 – <code>/etc/rc1.d/</code></li><li>Run level 2  – <code>/etc/rc2.d/</code></li><li>Run level 3  – <code>/etc/rc3.d/</code></li><li>Run level 4 – <code>/etc/rc4.d/</code></li><li>Run level 5 – <code>/etc/rc5.d/</code></li><li>Run level 6 – <code>/etc/rc6.d/</code></li></ul><p>Attenzione, la posizione esatta di queste directory varia da distribuzione a distribuzione.<br><br>Se si guarda alle diverse directory di livello di esecuzione, si troveranno programmi che iniziano con una "S" o una "K", rispettivamente per startup e kill. I programmi di avvio vengono eseguiti durante l'avvio del sistema, mentre i programmi di disattivazione vengono eseguiti durante lo spegnimento.<br><br>Questo è tutto quello che c'è da sapere sul processo di avvio di Linux. Ora provate Linux e rendete <a href="https://it.wikipedia.org/wiki/Tux_(mascotte)">Tux</a> orgoglioso.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Git checkout spiegato: come effettuare il checkout, modificare o cambiare un branch in Git ]]>
                </title>
                <description>
                    <![CDATA[ Il comando git checkout consente di passare da un branch (o ramo) all'altro o di ripristinare i file dell'albero di lavoro. Esistono diverse opzioni per questo comando che non verranno trattate in questo articolo, ma è possibile consultarle tutte nella documentazione di Git [https://git-scm.com/docs/git-checkout]. Effettuare il checkout di uno specifico ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/git-checkout-spiegato-come-effettuare-il-checkout-modificare-o-cambiare-un-branch-in-git/</link>
                <guid isPermaLink="false">63242960f91c6d07327f6cef</guid>
                
                    <category>
                        <![CDATA[ Git ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Alessandro Cipriani ]]>
                </dc:creator>
                <pubDate>Mon, 19 Sep 2022 11:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/09/5f9c9e5b740569d1a4ca3cac.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/git-checkout-explained/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Git Checkout Explained: How to Checkout, Change, or Switch a Branch in Git</a>
      </p><p>Il comando <code>git checkout</code> consente di passare da un branch (o ramo) all'altro o di ripristinare i file dell'albero di lavoro. Esistono diverse opzioni per questo comando che non verranno trattate in questo articolo, ma è possibile consultarle tutte nella <a href="https://git-scm.com/docs/git-checkout">documentazione di Git</a>.</p><h3 id="effettuare-il-checkout-di-uno-specifico-commit"><strong>Effettuare il checkout di uno specifico commit</strong></h3><p>Per eseguire il checkout di un commit specifico, esegui il comando:</p><pre><code class="language-shell">git checkout id-commit-specifico</code></pre><p>Possiamo recuperare l'id di uno specifico commit eseguendo:</p><pre><code class="language-shell">git log</code></pre><h3 id="effettuare-il-checkout-di-un-branch-esistente"><strong>Effettuare il checkout di un branch esistente</strong></h3><p>Per eseguire il checkout di un branch esistente, esegui il comando:</p><pre><code class="language-shell">git checkout NOME-BRANCH</code></pre><p>In genere, Git non consente di eseguire il checkout di un altro branch a meno che la directory di lavoro non sia pulita, perché si perderebbero tutte le modifiche della directory di lavoro di cui non è stato ancora effettuato un commit. Ci sono tre opzioni per gestire tali modifiche: 1) eliminarle, 2) <a href="https://www.freecodecamp.org/italian/news/il-comando-git-commit-spiegato/">effettuare un commit che le include</a> o 3) <a href="https://www.freecodecamp.org/italian/news/git-stash-spiegato-come-conservare-temporaneamente-modifiche-locali-in-git/">spostarle nell'area di stash</a>.</p><h3 id="effettuare-il-checkout-di-un-nuovo-branch"><strong>Effettuare il checkout di un nuovo branch</strong></h3><p>Per creare e contemporaneamente spostarsi nel nuovo branch con un singolo comando, è possibile eseguire:</p><pre><code class="language-shell">git checkout -b NOME-NUOVO-BRANCH</code></pre><p>In questo modo si passerà automaticamente al nuovo branch, dopo averlo creato.</p><h3 id="effettuare-il-checkout-di-un-nuovo-branch-o-ripristinare-un-branch"><strong>Effettuare il checkout di un nuovo branch o ripristinare un branch</strong></h3><p>Il seguente comando è molto simile al comando che permette di creare e contemporaneamente spostarsi in nuovo branch, ma utilizza l'opzione <code>-B</code> (in questo caso la B è maiuscola) e un parametro opzionale <code>START-POINT</code>:</p><pre><code class="language-shell">git checkout -B NOME-BRANCH START-POINT</code></pre><p>Se il branch <code>NOME-BRANCH</code> non esiste, allora Git lo creerà e lo farà partire dal punto indicato dal parametro <code>START-POINT</code>. Se, invece, il branch <code>NOME-BRANCH</code> esiste, allora Git lo ripristinerà al punto del branch indicato dal parametro <code>START-POINT</code>. L'esecuzione di quest'ultimo comando è equivalente all'esecuzione di <code>git branch</code> con l'opzione <code>-f</code>.</p><h3 id="forzare-un-checkout"><strong>Forzare un Checkout</strong></h3><p>È possibile passare l'opzione <code>-f</code> o <code>--force</code> &nbsp;al comando <code>git checkout</code> per forzare Git a cambiare branch, anche in presenza di modifiche della directory di lavoro di cui non è stato ancora effettuato un commit (in altre parole, l'indice dell'albero di lavoro è diverso da <code>HEAD</code>). In pratica, questo comando può essere usato per eliminare le modifiche locali.</p><p>Eseguendo il comando seguente, Git ignorerà le modifiche esistenti e si sposterà di branch:</p><pre><code class="language-shell">git checkout -f NOME-BRANCH

# Alternativa
git checkout --force NOME-BRANCH</code></pre><h3 id="annullare-le-modifiche-nella-directory-di-lavoro">Annullare le modifiche nella directory di lavoro</h3><p>È possibile usare il comando <code>git checkout</code> per annullare le modifiche apportate a un file nella directory di lavoro. In questo modo il file tornerà alla versione presente nell'<code>HEAD</code>:</p><pre><code class="language-shell">git checkout -- NOME-FILE</code></pre> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
