Dopo molto peregrinare nella jungla del web, sono appena riuscito a rendere gestibile uno spazio web, tramite GIT, ed eccomi qui a condividere con voi questa esperienza passo dopo passo, cercando di ridurre allโosso tutti i passaggi effettuati.
Prima di tutto, cosa รจ GIT?
Immagino che se state leggendo queste righe, saprete giร di cosa sto parlando e volete subito passare al succo dellโarticolo ma, per i non geek, cerco di riassumere in breve:
Git รจ un sistema di โversioningโ nato dalla mente di Linus Torvalds (vi dice qualcosa?) ed รจ oggi tuttโora il software piรน usato nel mondo open source, in soldoni รจ un ambiente dove un dato progetto web, di qualsiasi linguaggio di programmazione, puรฒ essere gestito da un numero non definito di persone, e ogni modifica effettuata (commit) viene โinviataโ e, previa autorizzazione, viene inclusa nel progetto padre, il tutto senza sovrascrivere le modifiche effettuate da altri. Tutto ciรฒ per creare ordine e per avere a vista dโocchio un quadro piรน generale di tutte le modifiche effettuate dalla data di apertura del progetto, ad oggi. Inoltre, tutte le vecchie versioni potranno essere recuperate, come una sorta di macchina del tempo.
Passiamo alla configurazione.
Premessa:
il seguente tutorial รจ stato testato su Debian Stretch (9) e su Mac OS, in pratica ciรฒ che รจ stato fatto รจ configurare una repository su Debian (server remoto) e gestire il tutto su client locale su Mac, usando SourceTree (client gratis, che gestisce tra le altre cose, anche GIT).
Con un po di savoir-faire, il procedimento si puรฒ effettuare anche su altri sistemi operativi, in quanto GIT รจ gestito/gestibile da comandi di testo.
- ย Installate GIT, su Debian, con il nostro fido apt-get install gitย
- sul server remoto, posizionatevi via terminale nella cartella dove avete il vostro malloppo di file, ed inizializate git con git init โbare (la variabileย bare permette di effettuare push, altrimenti รจ soltanto โleggibileโ)
- ora avrete una cartella chiamata .git , con allโinterno altri files e cartelle, andate in /hooksย (cd .git/hooks)
- create un file chiamato post-receive (conย il vostro editor preferito,ย โnano” o “vi” ad esempio: nano post-receive )e allโinterno incollate il seguente contenuto, cambiando ovviamente il percorso ed adattandolo al vostro server:
#!/bin/sh GIT_WORK_TREE=/path/della/vostra/cartellaย git checkout -f
- salvate il contenuto (con nano CTRL+O) e settate i permessi di esecuzione sul file conย chmod +x post-receive
- tornate alla webroot del vostro server e aggiungete il contenuto con git add . (cโรจ un punto, sรฌ)
- siete pronti per il primo commit, eseguite con il comando git commit -m โil mio primo commit!’
- ora andate sul vostro Mac/Pc e aprite SourceTree (o qualsiasi altro client…o via terminal!)
- cliccate su Clone a Repository e inserite i vostri dati (io ho scelto di farlo usando SSH ma volendo si puรฒ fare anche via HTTP), dopodichรฉ vi apparirร una finestra chiedendovi la password del vostro server. Da terminale vi basterร scrivereย git remote add origin ssh://username@vostroserver/var/www/sitoweb
- fatto ciรฒ non vi rimane altro che effettuare il fetch (in pratica il sync in locale, dei file presenti in remoto), potrete farlo da SourceTree cliccando appunto su Fetch, oppure via terminal con git fetch
Da qui in poi avrete la copia locale della vostra repository, e potrete pubblicare/modificare nuovi files usando dei commit (SourceTree ha il tasto pronto) mentre da terminale potrete usare git commit.
Buona revisions a tutti!