Ci ho messo un pochetto a capire come si fa, ed oggi ho fatto davvero tardi (eh, sono le tre e mezza di mattina) ma finalmente ho capito come si crea un repository pubblico con git.
Innanzitutto ci serve un account su un server (un server Unix, ovviamente) dove abbiamo spazio web (quanto basta per gestire il nostro progetto) e accesso via ssh.
L’accesso via ssh è importante in quanto ci servirà per i PUSH, ovvero per aggiungere al mirror l’ultimo codice che abbiamo prodotto.
Qui descriverò una procedura piuttosto pratica che potrebbe non essere perfetta: abbiate pazienza, ho appena capito come si fa e questa paginetta è più per me (per fissare e per ricordami come si fa) che per vi ;-P .
Innanzitutto avviamo un progetto.
Quindi:
cd ; mkdir mioprogetto
cd mioprogetto
git init
cd ; git –bare clone mioprogetto mioprogetto.git
Adesso facciamo un bel tar della cartella .git e la uppiamo sul server:
tar -cjvf mioprogetto.git.tbz mioprogettogit
scp mioprogetto.git.tbz tu@tuoserver/_tuahome/_tua_htmldir/
Adesso ci logghiamo sul server :
ssh tu@tuoserver
Scompattiamo la cartella
cd tua_htmldir ; tar -xjvf mioprogetto.git.tbz
Eliminiamo quello che non serve
rm mioprogetto.git.tbz
Informiamo git che la cartella dev’essere esportabile:
cd mioprogetto.git
git –bare update-server-info
Adesso effettivamente possiamo clonare il progetto con un semplice:
git clone http://server/<path>/cartella.git
Purtroppo però il PUSH non è così semplice come il CLONE.
Innanzitutto, sul server dobbiamo editare il file description contenuto nella cartella *.git (che in questi esempi sarebbe mioprogetto.git) e, ma guarda un po’, inserirci una sorta di descrizione. Ad esser sincero, non sono sicuro che ci vada una vera e propria descrizione. Ho solo notato che se quel file viene editato allora il PUSH funziona, altrimenti no. Ma mi sto documentando ๐
Quindi:
cd mioprogetto.git ; vi description
Secondo passo: dopo aver clonato il progetto, bisogna dire a git di non tentare il push via HTTP ma via SSH. Dobbiamo agire quindi sulla variabile origin della nostra copia locale del repository.
Eliminiamo la vecchia origin :
git remote rm origin
Impostiamo la nuova:
git remote add origin ssh://tu@tuohost.xyz/path/alla/cartella.git/
E finalmente (perchè se siete tipi come me vi sarete sicuramente rotti le palle) potete fare i PUSH e tutto il resto tranquillamente.
Adesso, se avete letto fin qui e fi sta funzionando, abbiate almeno la cortesia di lasciare un commento ๐
Saluti,
Elric