GIT/It

From TuxFamilyFAQ
Jump to: navigation, search

GIT repository



Template:Incomplete/It

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...

Links utili