GIT/It
GIT repository
Contents
- 1 Descrizione
- 2 Dipendenze
- 3 Creare il repository GIT
- 4 Moderazione
- 5 Come amministrarlo (pannello)
- 6 Come utilizzarlo
- 7 Tricks and tips
- 8 Links utili
Descrizione
git è un altro team coding system come CVS o SVN
Dipendenze
Creare il repository GIT
- Vai al pannello di controllo
- Seleziona il progetto per il quale vuoi aggiungere il repository GIT
- Scegli il nome del tuo repository
- Valida
consigli per la creazione
- Non scegliere nomi troppo comuni
- Completa i campi di descrizione per evitare problemi con il team di moderatori ;)
Moderazione
Il tuo repository sarà soggetto a moderazione, vedi qui
Come amministrarlo (pannello)
Nel pannello puoi scegliere se rendere pubblico il repository. Accettando, permetti il login anonimo in sola lettura sul repository e permetti di vederlo da sgitweb (coming soon)
Configurazione
Come maneggiare i permessi del gruppo
Questo oggetto può essere condiviso con il tuo gruppo utilizzando l'ACL
Come distruggerlo
- Fate il login nel pannello
- clicca sul gruppo corrispondente al tuo progetto
- clicca sul tuo repository GIT
- clicca su distruggi
Come utilizzarlo
Così, hai scelto di essere hosted da TuxFamily, molto bene. Hai scelto un repository GIT, fantastico! Ora ti spieghiamo come utilizzarlo.
Operazioni di base
Check out
Comincia creando una copia locale del tuo repository. Assumeremo che tu abbia già una directory con il tuo progetto all'interno.
$ cd myproject $ git init $ git add myfirstfile mysecondfile $ git commit -a $ git push ssh://YOURUSER@git.tuxfamily.org/gitroot/YOURPROJECT/REPOSITORYNAME.git master
Questo creerà il primo commit che sarà il ramo principale (master) del tuo repository GIT.
(Naturalmente, sostituisci YOURUSER, YOURPROJECT e REPOSITORYNAME con i valori reali...)
Per effettuare il download di una copia completa del tuo repository GIT, puoi utilizzare il comando clone:
$ git clone ssh://YOURUSER@git.tuxfamily.org/gitroot/YOURPROJECT/REPOSITORYNAME.git remote: Generating pack... remote: Done counting 6 objects. remote: Deltifying 6 objects... remote: (6/6) done remote: Total 6 (delta 0), reused 0 (delta 0) Indexing 6 objects... 100% (6/6) done
Aggiungere, rimuovere file, aggiornare il tuo repository
Aggiungere file
Entra nel tuo repository locale
$ cd repos
creiamo un file di nome 'file'
$ touch file
Per aggiungerlo al tuo repository, digita:
$ git add file
Ora, puoi fare il commit digitando:
$ git commit file
Una volta effettuato il commit, puoi portare tutto sul server:
$ git push
Per le directory, faremo lo stesso
$ git add directory/ $ git commit directory/ $ git push
Rimuovere un file
Per rimuovere un file, digita:
$ git rm file $ git commit $ git push
Aggiornare il tuo repository
Lavorando in team, può essere utile fare l'update della copia locale del proprio repository:
$ git pull Warning: You might have to type the password several times
Usare GIT come utente anonimo
Puoi usare GIT senza fare il login. Non potrai modificare il repository (aggiungere o rimuovere file). Per fare un checkout anonimo, digita questo:
$ git clone git://git.tuxfamily.org/gitroot/YOURPROJECT/YOURREPOSITORY.git
Utenti anonimi possono anche controllare la presenza di nuove versioni digitando:
$ git pull
La modalità anonima è abilitata sul pannello (default=allowed)
Usare Gitweb
Puoi vedere tutti i repository pubblici qui: http://git.tuxfamily.org Gli URL saranno del tipo : http://git.tuxfamily.org/group/repository.git/ ( http://git.tuxfamily.org/tftest/testgit.git/ per esempio )
Configurare SSH in GNU/Linux
TuxFamily usa GIT assieme a SSH. Questo significa che tutte le volte che accedi al tuo repository con GIT, dovrai digitare la tua password di TuxFamily per autenticarti. Questo può diventare noiso e pesante.
E' possibile utilizzare le chiavi SSH assieme a software come ssh-agent e keychain per avere una esperienza più confortevole, senza sacrificare la sicurezza.
Creare e fare l'upload delle chiavi SSH
Per usare una chiaven SSH, prima di tutto devi crearla. Per creare una chiave SSH apri una console e digita:
$ ssh-keygen -t rsa
Ti verrà chiesto di inserire una passphrase. Una volta inserita la chiave è pronta per essere utilizzata.
Una coppia di chiavi è stata generata con il comando precedente: la tua chiave privata, da tenere segreta, e quella pubblica, della quale verrà effettuato l'upload sul server di TuxFamily.
La tua chiave pubblica si chiama id_rsa.pub e si trova, quando viene creata, nella tua home directory all'interno della cartella ".ssh". Con il seguente comando copieremo la tua chiave pubblica in un file chiamato "ssh_keys" all'interno della tua home directory:
$ cat ~/.ssh/id_rsa.pub >> ~/ssh_keys
Ora dobbiamo configurare i permessi su questa copia della chiave pubblica, che verrà portata sul server di TuxFamily:
$ chmod 700 ~/ssh_keys
Finalmente, effetuerai l'upload del file "ssh_keys" sui server di TuxFamily utilizzando FTP. Si può utilizzare un qualunque client FTP. Il nome del server FTP è ftp://ftp.tuxfamily.org/ (dovrai inserire il tuo nome utente e password di TuxFamily). Il file "ssh_keys" deve essere copiato all'interno della root directory, i.e., la directory nella quale ti troverai dopo esserti connesso al server FTP.
Usare ssh-agent/keychain
Finora non abbiamo migliorato molto la situazione siccome, invece della password di TuxFamily, ci verrà chiesta la nostra passphrase ogni volta che utilizzeremo GIT.
Fortunatamente esistono programmi che ci permettono di gestire le nostre chiavi SSH, così da dover inserire la nostra passphrase solo una volta per sessione (o, nel caso di keychain, solo una volta per boot).
ssh-agent
La prima opzione è utilizzare ssh-agent.
Désormais il ne reste plus qu'à lancer une session SSH sur votre machine. Ceci se résume en 2 commandes. Tout d'abord (au cas où) il faut "killer" tous les processus ssh-agent si vous en avez lancé un. Sachez qu'il faut toujours verifier que aucun autre agent ssh soit lancé car Gnome et d'autres environnements lancent un agent.
$killall ssh-agent
Puis nous allons lancer les 2 commandes qui vont permettre à votre machine de communiquer avec GIT via SSH.
$ ssh-agent $SHELL $ ssh-add ~/.ssh/id_rsa
Si tout s'est bien passé, vous n'aurez pas à taper votre mot de passe à chaque commande GIT que vous ferez par la suite. A chaque fois que vous voudrez utiliser cvs, il faudra ouvrir une session SSH:
$ ssh-agent $SHELL $ ssh-add ~/.ssh/id_rsa
Et toute les commandes GIT devront être tapées dans le même SHELL.
Pour éviter de devoir ouvrir une session à la main à chaque session, ajoutez ces lignes dans le fichier .bashrc :
if [ -f .ssh-agent ]; then .ssh-agent else killall ssh-agent ssh-agent > .ssh-agent ssh-add ~/.ssh/id_rsa fi
keychain
Keychain[1] è un gestore di chiavi SSH che permette di dover inserire la tua chiave SSH solo una volta per boot della macchina (i.e., keychain non uscirà quando farai il logout, ma rimarrà aperto silenziosamente in background). Keychain usa internamente ssh-agent.
Utilizzare keychain è un processo a due stadi. Per prima cosa si fa partire, dicendogli di caricare la tua chiave pubblica in memoria:
$ keychain ~/.ssh/id_rsa
Dovrai digitare la passphrase della tua chiave. Quindi deve leggere alcune variabili d'ambiente da un file. Puoi farlo con il comando
$ source ~/.keychain/`hostname`-sh
Mentre devi far partire keychain solo una volta per boot della macchina, dovrai rileggere le variabili d'ambiente ogni volta che cominci una sessione di console. Per evitare questo passaggio, puoi aggiungere alla fine del tuo file "" qualcosa come le seguenti righe (assumendo che tu stia utilizzando la bash shell):
if [[ $- != *i* ]] ; then # Shell is non-interactive. Be done now! return else keychain --nolock ~/.ssh/id_rsa source ~/.keychain/`hostname`-sh fi
Nel caso te lo stia domandando, il costrutto "if" assicura che tu sia in una shell interattiva prima di lanciare keychain e leggere le variabili d'ambiente.
Per maggiori informazioni e documentazioni, riferirsi alla homepage di keychain.
Développement collaboratif, droits d'écriture
Tous les utilisateurs du groupe auront la permission d'écrire sur le GIT. Autrement dit, si vous désirez développer à plusieurs sur un même repository, il est conseillé d'ajouter les développeurs au groupe via le panel. Toutefois, il faut que les développeurs se créent un compte sur le panel au préalable.
Un projet correspond à un groupe (au sens Unix du terme), il faut ajouter vos co-développeurs à votre projet pour qu'ils puissent commiter des modifications au dépôt subversion (ils auront aussi accès à l'arborescence, permettant de maintenir l'intégralité du projet collaborativement).
Autrement, vous risquez d'obtenir le message suivant :
<a remplir en cas d'echec de droits>
Tricks and tips
- Raccomandiamo di fare il commit solo di codice che compila correttamente (anche se non funziona completamente) per essere sempre sicuri che il materiale possa essere utilizzato da nuovi utenti in qualunque momento.
- Devi scegliere i file che vuoi mettere nel tuo repository GIT. Non è necessario fare l'upload di file di backup, o file binari. Stai attento, alcuni editor di testo fanno backup automatici in xxx~.
- Non scegliere un nome generico per il tuo repository
come per esempio "git". Piuttosto, scegli un nome intelligente o nel caso peggiore, usa il nome del tuo progetto...