Skip to content

Gestion du projet avec git

CodeZ-Julien edited this page Oct 25, 2010 · 4 revisions

Git est un logiciel de gestion de versions décentralisé. Il a été crée à l'origine par Linus Torvalds pour le noyau Linux. Il se caractérise pour sa rapidité et sa gestion des branches avancées.

Installation de git

Sous un système basé sur debian, il suffit d'utiliser l'outil APT

$ aptitude install git-core

ou encore

$ aptitude install git

Dans les versions récentes de debian, le paquet "git" remplace le paquet "git-core"

Ce paquet fournit le logiciel de gestion de versions de git et toutes les commandes shell pour manipuler un dépôt.

Création d'un compte github

Créer un compte gratuit pour un projet open source à l'adresse https://github.com/signup/free

A la création du compte, une adresse e-mail valide sera demandée.

Générer une clé ssh

Commencez par installer un client ssh avec l'outil apt

$ aptitude install openssh-client

Générer une clé SSH publique. Il est déconseillé de modifier le fichier ou est stocké la clé.

$ ssh-keygen -t dsa

Récupérer la clé SSH publique dans le fichier ~/.ssh/id_dsa.pub. Afin de les ajouter facilement nous allons utiliser xclip pour la copier dans le presse-papier :

$ cat ~/.ssh/id_dsa.pub | xclip -sel clip

Il nous reste plus qu’à copier dans la zone « Key », le champ « Title » seras rempli automatiquement.

Récupération du projet sur github

On clone le dépôt distant sur notre machine locale. Nous disposons ainsi d'un dépôt git sur notre machine. Cette commande crée un dossier istore-project et télécharge toutes les sources du projet.

$ git clone [email protected]:CodeZ-Julien/istore-project.git

Il nous reste plus qu'à configurer notre dépôts sur notre machine

$ cd istore-project

$ mdkir log/ cache/

Il nous reste à ignorer certains dossiers et fichiers de git. Par exemple, il est inutile d'ajouter les fichiers log dans le dépôts. Créer unfichier .gitignore à la racine du projet.

**$ touch .gitignore **

Ajouter les dossiers et les répertoires suivants pour les ignorer

cache/*

log/*

config/databases.yml