Difference between revisions of "GIT/Fr"

From TuxFamilyFAQ
Jump to navigationJump to search
(Renvoi vers User SSH)
Line 129: Line 129:
 
Les URLs sont de la forme http://git.tuxfamily.org/groupe/dépôt/ ( exemple: http://git.tuxfamily.org/tftest/testgit/ )
 
Les URLs sont de la forme http://git.tuxfamily.org/groupe/dépôt/ ( exemple: http://git.tuxfamily.org/tftest/testgit/ )
  
== Déposer votre clé SSH ==
+
== Utilisation avec SSH ==
  
=== Configurer SSH sous Linux ===
+
Il faut premièrement activer votre accés ssh et il est possible aussi de déposer votre clé SSH (publique) sur votre espace sur Tuxfamily. Cela vous permet de ne pas taper votre mot de passe à chaque opération effectuée sur le serveur Git.  Ensuite, il ne reste plus qu'à lancer une session SSH sur votre machine et toute les commandes GIT devront être tapées dans le même SHELL.
Vous devez tout d'abord générer votre clef ssh, pour ce faire, ouvrez une console et tapez :
 
$ ssh-keygen -t rsa
 
  
Une "passphrase" vous sera demandée. Une fois entrée, votre clef ssh est prète a être utilisée.
+
Lisez cette page pour savoir précisément [[User/Fr#Acc.C3.A8s_SSH|comment faire tout ça.]]
Avant tout, il faut créer un fichier nommé "ssh_keys" qui contiendra le contenu de la clef publique générée.
 
Faisons ainsi:
 
$ cat ~/.ssh/id_rsa.pub >> ~/ssh_keys
 
$ chmod 700 ~/ssh_keys
 
 
 
Il faut maintenant les envoyer sur le serveur distant, en l'occurrence votre FTP Tuxfamily. Ouvrez un client FTP et allez sur votre compte, vous allez voir vos différents projets en cours, c'est à dire vos espaces Web. Restez a la base et copiez le fichier ssh_keys à l'intérieur.
 
 
 
 
 
===Upload de la clef===
 
 
 
Il est possible de déposer votre clé SSH (publique) sur les serveurs de Tuxfamily. Cela vous permet de ne pas taper votre mot de passe à chaque opération effectuée sur le serveur Subversion.
 
*Pour la déposer, il faut copier le contenu de votre clé publique dans le fichier '''ssh_keys''' (le créer si besoin) qui est placé dans votre répertoire de départ (répertoire home). Ce répertoire home est celui sur lequel vous arrivez lorsque vous vous identifiez sur le serveur FTP.  
 
*Ce fichier doit être placé et avoir un chmod de 700 (faire le chmod 700 à l'aide du client ftp).
 
Autrement dit, seul VOUS, utilisateur, avez le droit de lire, d'écrire et d'exécuter ce fichier.
 
 
 
Votre clé publique ssh est dans ~/.ssh/id_rsa.pub ou id_dsa.pub (si vous avez retenu un mode faiblard d'encryption), c'est ce fichier que vous mettez en ligne sous le nom ssh_keys.
 
 
 
===Utilisation===
 
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
 
 
 
Note : Vous pouvez utiliser KeyChain http://www.gentoo.org/proj/en/keychain pour garder en mémoire votre passphrase et le ssh-agent.
 
 
 
IMPORTANT: Notez bien votre passphrase, elle vous sera demandée lors du login de votre bash.
 
  
 
==Développement collaboratif, droits d'écriture==
 
==Développement collaboratif, droits d'écriture==

Revision as of 16:22, 9 November 2007

Dépot GIT




Description

git est un autre SCM tel que CVS ou SVN mais diffère légèrement de ceux-ci car il est décentralisé.

Dépendances

Création

  • Rendez vous sur le panel
  • cliquez sur le lien du projet auquel vous voulez ajouter un dépot GIT
  • choisissez le nom de votre dépot
  • validez

conseils de création

  • ne choisissez pas un nom trop générique
  • Pensez à remplir la description pour éviter les soucis avec les modos ;)

Modération

Cet objet est soumis à la modération voir : ici

Comment l'administrer (panel)

Sur le panel vous pouvez décider si ce repository est public ou non.

En cochant oui vous permettez un login anonymous en lecture seule sur le repository et en permettez le visionnage par le gitweb (pas encore disponible)

Configuration

Comment gerer les droits de mon groupe

Cet objet peut être partagé avec votre groupe en utilisant les ACL

Comment le détruire

  • logguez vous sur le panel
  • cliquez sur le groupe de votre projet
  • cliquez sur votre depôt GIT
  • cliquez sur détruire

Comment l'utiliser

Bon, vous avez pris un hébergement chez Tuxfamily, c'est bien. Vous avez opté pour un repository GIT, c'est très bien. Nous allons vous expliquer comment utiliser tout cela.

Utilisation basique

Check out

Commencez par initialiser votre repository en local. Nous partons du principe que vous possédez déja un répertoire contenant votre projet.

$ cd monprojet
$ git init
$ git add monpremierfichier mondeuxiemefichier
$ git commit -a
$ git push ssh://VOTREUSER@git.tuxfamily.org/gitroot/VOTREPROJET/NOMDUREPOSITORY.git master

Ceci va créer un premier commit qui sera la branche 'master' de votre repository git.

(remplacez bien sur VOTREUSER par votre nom d'utilisateur sur le panel, VOTREPROJET par le nom du projet auquel appartient le repository de nom NOMDUREPOSITORY).

Pour récupérer une copie complète du dépôt GIT, vous pouvez utiliser la commande clone :

$ git clone ssh://VOTREUSER@git.tuxfamily.org/gitroot/VOTREPROJET/NOMDUREPOSITORY.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

Ajout/suppression de fichiers, mise à jour du repository

Ajout de fichier

Entrons donc dans notre répertoire

$ cd repertoire

Et créons un fichier appelé ##file##

$ touch file

Ensuite, pour l'ajouter au repository, tapez simplement

$ git add file

Enfin, pour commiter, invoquez la commande suivante :

$ git commit file

Une fois vos commits terminés, vous pouvez pusher tout sur le serveur avec la commande:

$ git push

Pour les répertoires, nous aurions procédé de la même façon

$ git add directory/
$ git commit directory/
$ git push

Suppression de fichier

Pour supprimer un fichier présent dans le repository, tapez simplement

$ git rm file
$ git commit
$ git push


Mise à jour du repository

Quand on travaille en groupe, il peut être utile de pouvoir mettre à jour son dépot subversion. Pour cela, il suffit d'invoquer la commande suivante à la base du repository

$ git pull
Attention: le mot de passe pourra vous sera peut-être demandé plusieurs fois

Utilisation de GIT en anonymous (pas encore disponible)

Il est possible d'utiliser GIT en anonyme. Cependant, vous n'aurez pas le droit de modifier le repository (suppression ou modification de fichiers). Pour faire un 'checkout' du repository, invoquez la commande suivante :

$ git clone git://git.tuxfamily.org/gitroot/VOTREPROJET/NOMDUREPOSITORY.git

Il est également possible de mettre à jour le repository au fur et à mesure que les développeurs mettent à jour le code via un simple

$ git pull

Attention cependant, le mode anonyme n'est disponible que si votre repository est mis en public (réglage par défaut)

Utilisation du Gitweb

Vous pouvez consulter les repositories par le web à l'adresse suivante : http://git.tuxfamily.org Les URLs sont de la forme http://git.tuxfamily.org/groupe/dépôt/ ( exemple: http://git.tuxfamily.org/tftest/testgit/ )

Utilisation avec SSH

Il faut premièrement activer votre accés ssh et il est possible aussi de déposer votre clé SSH (publique) sur votre espace sur Tuxfamily. Cela vous permet de ne pas taper votre mot de passe à chaque opération effectuée sur le serveur Git. Ensuite, il ne reste plus qu'à lancer une session SSH sur votre machine et toute les commandes GIT devront être tapées dans le même SHELL.

Lisez cette page pour savoir précisément comment faire tout ça.

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>

Remarques diverses

  • Il est conseillé de ne commiter que des éléments qui compilent correctement (mais qui ne fonctionnent pas forcément) afin que le trunk puisse être testé n'importe quand par de nouveaux utilisateurs.
  • Vous devez choisir les fichiers à versionner, il n'est pas exemple pas nécessaire d'archiver des fichiers de backup (faites attention aux éditeurs qui créent des copies en xxx~, ces copies ne doivent pas être versionnées) ni les fichiers issus directement de la compilation des sources.
  • Evitez de prendre un nom générique comme "git". Utilisez plutot un nom en rapport avec votre projet ou même, prenez le nom de votre projet ...

Liens utiles