Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

GIT

No description
by

aicha loukili

on 23 January 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of GIT

L’installation de Git est très facile. Le msysGit (un système d’émulation des commandes Unix sous Windows) fournit une des procédures d'installation les plus simples.

Téléchargez simplement le fichier exe depuis la page GitHub, et lancez-le :
http://msysgit.github.com/

À la fin de l’installation, vous pouvez lancer une console qui permet d’utiliser Git en ouvrant le programme Git Bash.
Git sur le Serveur
Les commandes presentees precedemment permettent de gerer un depot local dans lequel le d’eveloppeur possède tous les droits en lecture et en ecriture. Il est possible d'y associer des d’epots distants.
Ces depots distants peuvent être accessible en lecture
uniquement (equivalent du trunk de svn). Une maniere de travailler est d'avoir un depot distant par developpeur (en plus des depots locaux), lui permettant de publier a tous ses commits, et un depot distant root qui sera gere par un administrateur.
Pour gerer un depot distant il y a quelques commandes supplementaires a connaitre .
plan
Généralités sur GIT
Generalités sur git
Conclusion
Réalisé par :
Hermak Saad
Lahlou zakaria
Lihi Sara
Ahabchane Mounsef
Université Ibn Tofail
Faculté des Sciences
Master Spécialisé Qualité Logiciel
Master Systèmes intelligents et Imagerie
Les bases de GIT
Les branches avec GIT
Introduction
la gestion de versions
Un gestionnaire de version est un système qui enregistre l'évolution d'un fichier ou d'un ensemble de fichiers au cours du temps de manière à ce qu'on puisse rappeler une version antérieure d'un fichier à tout moment.
Ces logiciels ont donc par conséquent deux utilités principales :
• S
uivre l’évolution d’un code source
:
Pour retenir les modifications effectuées sur chaque fichier et être ainsi capable de revenir en arrière en cas de problème ;
• T
ravailler à plusieurs
:
Si deux personnes modifient un même fichier en même temps, leurs modifications doivent pouvoir être fusionnées sans perte d’information.
logiciel centralisé et distribué
Il existe deux types principaux de logiciels de gestion de versions.

Les logiciels centralisés :
Un serveur conserve les anciennes versions des fichiers et les développeurs s’y connectent pour prendre connaissance des fichiers qui ont été modifiés par d’autres développeurs et pour y envoyer leurs modifications.

Les logiciels distribués :
Il n’y a pas de serveur, chacun possède l’historique de l’évolution de chacun des fichiers. Les développeurs se transmettent directement entre eux les modifications.
git et les autres logiciels de gestion de version
Une des particularités de Git, c’est l’existence de sites web collaboratifs basés sur Git comme GitHub et Gitorious.

C’est une sorte de réseau social pour développeurs, vous pouvez regarder tous les projets évoluer et décider de participer à l’un d’entre eux si cela vous intéresse. Vous pouvez aussi y créer votre propre projet.
Les bases de git
L’espace de travail :
contient réellement les fichiers.
L’index :
joue le role d’espace de transit pour les fichiers.
Head :
pointe vers la dernière validation faite.

Démarrer un dépôt Git
Modification et commitation du Code
Depots Distants
Autres fonctionnalites
Pour ajouter un tag sur un commit :
git tag NOMTAG IDCOMMIT
Le tag est une manière de représenter un commit afin de l'identifier.
git grep "blabla"
:Connaître les noms des fichiers qui contiennent le mot blabla dans le code source.
Pour ignorer un fichier dans git, créez un fichier
.gitignore
(à la racine) et indiquez-y le nom du fichier.
Le cycle de vie d’un fichier Git
la commande init
la commande clone
Cloner un dépôt existant consiste à récupérer tout l’historique et tous les codes source d’un projet avec Git.
La commande git
init
crée un nouveau dépôt Git. Il peut être utilisé pour convertir un projet non versionné existant à un dépôt Git ou initialiser un nouveau référentiel vide.
Cela crée un nouveau sous-répertoire nommé .git qui contient tous les fichiers nécessaire au dépôt— un squelette de dépôt Git.

Avec la commande
git clone [url]
ex : git clone http://github.com/symfony/symfony.git
Cela va créer un dossier « symfony » et y télécharger tous les fichiers source du projet ainsi que l’historique de chacune de leurs modifications !
La configuration de git

Identification de l'utilisateur :
git config --global user.name <name>
git config --global user.email <email>
Création des alias pour les commandes de git :
git config --global alias.<alias-name> <git-command>
La commande de configuration de git vous permet de configurer votre installation de Git ou un dépôt en personne à partir de la ligne de commande.
Cette commande permet de définir toutes les informations de l'utilisateur de préférences au comportement d'un référentiel. Plusieurs options de configuration commun sont énumérés ci-dessous.
git status
On crée un fichier dans le répertoire mondepot que
l’on nomme fich et on fait git status pour consulter le répertoire de travail:
Problematique .......??!!
On remarque que la copie de travail est propre et que
le fichier n’est pas indexe !!
On nous propose d’utiliser git add fich !!

git add
Permet d'ajouter le fichier au Depot



On fait git status une autre fois :

Start
Work time
End
Debut du projet
A 2 jours du livrable ...
L'heure de mettre en commun !!
voila le fichier fich est dans l’index en tant que nouveau fichier !
git commit
Pour effectuer des modifications sur le fichier il faut faire un commit comme suit :
git commit -m ‘message de validation’
Parmi ses autres options:
-p :
montre les différences introduites entre chaque validation.
-2 :
limite la sortie de la commande aux deux entrées les plus récentes.
--stat :
visualiser des statistiques résumées pour chaque commit.
Commandes principales
git log
: Permet d'afficher une liste de commits sur une branche, y compris les détails correspondants
git reset HEAD
:pour annuler dernier commit.
HEAD
: dernier commit ;
HEAD^
: avant-dernier commit ;
HEAD^^
: avant-avant-dernier commit ;
git diff
:savoir les fichiers changés ainsi que les changement effectues dans ces fichiers .
git diff –cached
:pour visualiser ce qui a été indexé jusqu'à présent on utilise la commande
git checkout nomfichier
: restaurer le fichier tel qu’il était au dernier commit.
git help
:pour obtenir de l’aide

Recours au GIT
Git incite à mettre en commun tres regulierement .
en cas d'ennui, il est possible de revenir à la derniere version fonctionnelle.
Pour télécharger les nouveautés depuis le serveur : git pull <nom du serveur> <nom de la- branche distante>

Deux cas sont possibles :
soit vous n’avez effectué aucune modification depuis le dernier
pull, dans ce cas la mise à jour est simple (on parle de
mise à jour fast-forward ) ;
soit vous avez fait des commits en même temps que d’autres
personnes.
Les changements qu’ils ont effectués sont alors fusionnés aux
vôtres automatiquement.

Utilisation d'un logiciel de gestion des versions est devenu indispensable lorsqu’on travaille à plusieurs sur un même projet et donc sur le même code source. Même si vous travaillez seuls, vous aurez intérêt à commencer à en utiliser un rapidement car il vous offrira de nombreux avantages, comme la conservation d’un historique de chaque modification des fichiers par exemple.
Il existe de nombreux logiciels de gestion de versions, comme SVN (Subversion), Mercurial et Git. Nous allons dans ce billet parler de GIT (développé par Mr Linus Torvalds) qui est un des plus puissants logiciels de ce genre, et qui contrairement à CVS ou SVN se base sur une architecture décentralisée.
git push <nom du serveur> <nom de la branche locale>:<nom de la
branche distante> : permet de pousser ses commits locaux sur une branche distante

Un logiciel de gestion de versions centralisé
Le serveur retient les anciennes versions des fichiers et communique les changements aux développeurs.
Partage du travail
Un logiciel de gestion de versions distribué.
Il n’y a pas de serveur. Les développeurs conservent l’historique des modifications et se transmettent les nouveautés.
Un logiciel de gestion de versions distribué avec un serveur
Le serveur sert de point de rencontre entre les développeurs et possède lui aussi l’historique des versions.
Les particularités de Git
INSTALLATION DU GIT
LES BRANCHES AVEC GIT
Des branches : C'est quoi ? Pourquoi ?!
Dans le développement d'un projet, il arrive souvent qu'on souhaite travailler sur une fonctionnalité en limitant les interactions avec le reste de l'équipe.
comment Git gère
les branches?
Git ne stocke pas ses données comme une série d'ensembles de modifications ou différences, mais comme une série d'instantanés
Git stocke un objet commit qui contient un pointeur vers l'instantané du contenu qui a été indexé, les méta-données d'auteur et de message et zéro ou plusieurs pointeurs vers le ou les commits qui sont les parents directs de ce commit .
Depot Git
branche master
La branche par défaut dans Git s'appelle
master
. Au fur et à mesure des validations, la branche master pointe vers le dernier des commits réalisés. À chaque validation, le pointeur de la branche master avance automatiquement.

creer une branche
Git ne crée pas le commit du fusion.
Il arrête le processus le temps qu’on résout le conflit.
• Git ajoute des marques de conflit standard dans les fichiers qui comportent des conflits, pour qu’on puisse les ouvrir et résoudre les conflits manuellement.
• Après avoir résolu le conflit manuellement, on lance git add sur chaque fichier pour le marquer comme résolu.
• Puis on tape la commande git commit pour finaliser le commit de fusion.
Un moyen de faire ceci est d'utiliser des
branches
.
Une branche est une « ligne de développement », ou un ensemble de commits.
imaginez le scénario suivant
Les utilisateurs
dev
1 et
dev2
souhaitent travailler sur une fonctionnalité expérimentale qui risque d'introduire des régressions temporaires. Ils ne peuvent pas travailler sans utiliser « git commit » ou « git push », car ils souhaitent partager leur code, mais ne veulent pas déranger les autres membres de l'équipe avec.

Alors Ils créent une branche qu'ils appellent « experimental » dans le dépôt et travaillent dessus. Quand ils font des « git push » et « git pull », leurs commits sont envoyés dans cette branche, mais ne touchent pas à la branche « master » qui est la branche par défaut sous Git. Plus tard, ils fusionneront les changements de la branche « experimental » avec la branche « master » si la fonctionnalité atteint un niveau de fiabilité suffisant.

Contient à présent 5 objets:
Blob
pour le contenu de chacun des trois fichiers,
Arbre
qui liste le contenu du répertoire et spécifie quels noms de fichiers sont attachés à quels blobs
Commit
avec le pointeur vers l'arbre d'origine et toutes les méta-données attachées au commit.
Les données contenues dans votre dépôt Git ressemblent à :
Utilisez la commande git branch :
$ git branch test

Cela crée un nouveau pointeur vers le commit actuel

basculeerrrr
Pour basculer vers une branche existante, il suffit de lancer la commande git checkout:
$ git checkout test
Cela déplace HEAD pour le faire pointer vers la branche test

Votre branche test a avancé, tandis que la branche master pointe toujours sur le commit sur lequel vous étiez lorsque vous avez lancé git checkout pour basculer de branche. Retournons sur la branche master :
$ git checkout master
Cette commande a réalisé deux actions. Elle a remis le pointeur HEAD sur la branche master et elle a replacé les fichiers de la copie de travail dans l'état pointé par master. Cela signifie aussi que
les modifications que vous réalisez
à partir de maintenant divergeront de l'ancienne version du projet. Cette commande retire les modifications réalisées dans la branche test pour vous permettre de repartir dans une autre direction de développement.
fusion
Avant fusion:
basculer vers la branche sur laquelle on veut faire la fusion (master par exemple )
avec la commande : $git checkout master

Ensuite :
$git merge iss53

fusionner la branche « iss53 » avec la branche « master ».

Apres fusion ;
On peut effacer la branche avec la commande :
$git branch –d iss53

Git sur le serveur
Dans la premier partie nous expliquons comment créer un dépôt local, ce qui n’est naturellement pas suffisant pour travailler en collaboration avec d’autres personnes. Git est un système de gestion de sources décentralisé.
Il est assez simple de créer un dépôt distant afin de partager votre travail.
Pour pouvoir collaborer avec d'autres personnes au moyen de Git, vous allez devoir disposer d'un dépôt distant Git, un dépôt accessible en permanence par tous vos collaborateurs que ce soit pour pousser ou tirer, ce dépôt est nommé donc le "
Serveur Git
".
Pour commencer à travailler avec le serveur GIT , nous devons choisir quels sont les protocoles qui seront supportés. En général GIT peut utiliser jusqu'à quatre protocoles réseaux majeurs pour transporter des données.

Git hub
Pour travailler en groupe avec d’autres développeurs sur un projet, il faut créer un dépôt distant afin de partager votre travail, que ce soit sur un de vos serveurs où en utilisant un service d’hébergement
GitHub

C'est quoi git hub ???
Un outil de versionning puissant et beaucoup utilisé sur la toile.
Un service qui offre la possibilité d’héberger un dépôt distant pour vos projets  .
Vous pouvez avoir des projets dit « privé » avec des comptes payants, seul les développeurs ayants accès aux « projets » peuvent avoir accès au dossier ou au contraire dans une méthode dite collaborative, vous pouvez avoir votre « projet » public et ce dernier peut-être continuer/améliorer par d’autres développeur à travers la toile.

Le service vous crée une page de profil simple où vous pouvez afficher votre nom, email, entreprise, localisation et site internet. Cette page affichera également votre activité (commit, ajout de suivi, …) et vos dépôts. Vous pouvez également décider de recevoir les mises à jour (commit, comment) concernant un projet ou une personne, elles seront affichées sur votre page d’accueil avec la liste des projets afin d’y accéder plus rapidement. Vous avez également accès à un système de messagerie et de recherche de projet.

Réalisons quelques autres modifications et validons à nouveau :
$ vim test.rb $ git commit -a -m 'autres modifications'

Maintenant, l'historique du projet a divergé.
Vous avez créé une branche et basculé dessus, vous avez réalisé des modifications, puis vous avez rebasculé sur la branche principale et réalisé d'autres modifications. Ces deux modifications sont isolées dans des branches séparées. Vous pouvez basculer d'une branche à l'autre et les fusionner quand vous êtes prêt. Vous avez fait tout ceci avec de simples commandes 
branch
 et 
checkout
.

Données et objets Git pour des validations multiples

Git Hub
Resume
Pratiquons ..!!
Conclusion
Full transcript