Sviluppare con Git via SSH.

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

This entry was posted in Git, Programmazione. Bookmark the permalink.