Formation git.

Slides:



Advertisements
Présentations similaires
Subversion.
Advertisements

Git et Gitlab In Git we trust. Git et Gitlab In Git we trust.
Initiation à Université Rouen 2016.
FAIRE SA BIBLIOGRAPHIE DE THESE AVEC ZOTERO Traitements de texte pris en compte: Word et LibreOffice.
Emacs Laurent Pierron
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
1 Après 3 séances ● Utilisation du système Linux – Il faut maîtriser l'utilisation de la souris (« copy/paste » des textes donnés) – Utilisation de la.
Ghost (Création d'image Système)‏ C.R.I.P.T Informatique (BOYER Jérôme)‏
Travailler à l'ensimag avec son matériel personnel (dans les locaux Ensimag ou depuis l'extérieur) 1.Introduction 2.La clé USB Ensilinux 3.Rappels : Accès.
JPF 2008 Gestion distribué de version avec Mercurial Michael Scherer JPF 2008.
Subversion. 2 Subversion : Pour Quoi Faire ? Problèmes de la gestion du code dans un projet – Durée de vie du projet peut être longue : besoin de gérer.
Commerce électronique Automne  ASP.NET propose actuellement 4 Framework d’authentification: ◦ Asp.net Membership ◦ ASP.NET Simple Membership.
SUBVERSION un serveur de sources libre le jeudi 31 janvier 2008 – Association Lolita V 1.0 – Michel Cerdini.
Jean-Michel GLORIAN Atelier COMPIL du 08/06/10 SVN Client - Niveau découverte Atelier COMPIL SVN client Niveau découverte.
1 Après 5 séances ● Utilisation du système Linux – Il faut maîtriser l'utilisation de la souris (« copy/paste » des textes donnés) – Utilisation de la.
Subversion. 2 Subversion : Pour Quoi Faire ? Problèmes de la gestion du code dans un projet – La durée de vie du projet peut être longue : besoin de gérer.
Créer un site Web avec Eva Spip Première approche B. Gugger – Mars 2006 – Département RTC.
VHFFS : Enlarge your hosting Sylvain Rochet Samuel Lesueur Cette présentation est sous contrat Paternité-Partage des Conditions Initiales à l'Identique.
Séminaire EOLE Beaune Septembre 2007 AMON NG.
Recherche de GED Recherche d’une GED permettant un classement de documents de type(Words/PowerPoint/Excel etc…) avec une arborescence simple et un logiciel.
Josy "Outils collaboratifs" 1er octobre Le couplage Sympa - ferme de (doku)wikis pour les organisations virtuelles O. Lumineau, D. Verdin, O. Salaün,
Terminaux virtuels (VTY)
AMUE – SIFAC Intégration Fichier Mouvements BDF
Comment corriger son code sans forcément appeler l’enseignant M2202
FORMATION DES POINTS FOCAUX SUR LE SYSTÈME CountrySTAT/FENIX
Numérisation partielle
Réaliser un CD lecteur de salon (photos ou vidéos) pouvant être lu
ATS8500 Standalone Downloader.
Guide d’utilisation pour Git
Déjouer les pièges du Dockerfile
Utiliser le dossier Mon EBSCOhost
Se connecter toujours depuis TecfaMoodle
Comment accroître le nombre de contributions externes ?
Les commandes du système de fichiers
Gestion de version centralisée et décentralisée
Présentation Scribe NG Serveur pédagogique.
Le « Bugtracking » Alejandro FERNANDEZ – Etienne FONTEIX
Spip / Joomla...en 1h ! Mercredi 30 Avril 2008.
Logiciel de gestion des adhérents
Les instructions PHP pour l'accès à une base de données (Partie 4)
Formations CEFORA Alain Wafflard
Chiffrement de bout en bout
Ultra Vidéo Gallery UVG pour les intimes.
Guillaume Philippon Tutoriel git.
Fonctionnement et workflow
Faire de Zotero son hub de recherche : L’exemple Zotlog
PHP – SESSIONS Aide mémoire
Projet de voyage – Partie 1
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Chapitre 7 Configuration de l'environnement du bureau
Git 09/04/2015 Julien
Quand on aime, on ne compte pas...
A. DAAIF ENSET Mohammedia Université Hassan II Casablanca.
02- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Gestion des photos Organisation du disque dur, Navigation
SVN et Trac dans un contexte ASR
Introduction à la démarche DevOps
La création de notices d’exemplaires
TD Multimédia : cours 1 Année Groupe C TD multimédia.
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
Formation SpeechExec Enterprise Dictate
FRAMEWORKS : XMLBEANS / STRIPES
Modern Drivers/BIOS Management Joël Surget Octobre 2018
Formation Dragon NaturallySpeaking
ScienceDirect Guide d’utilisation de la base de données : ScienceDirect Pr R. EL OUAHBI.
ACCOMPAGNEMENT OUTILS D’AIDE TECHNOLOGIQUES
Ou Utilisation du site Ou
Les Commandes de base Linux. 1 L’aide sur les commandes Linux ◦ help : obtenir de l’aide pour une commande interne du shell. Elle permet aussi d'afficher.
Transcription de la présentation:

Formation git

Versionner son projet avec Git Codons à plusieurs ! Versionner son projet avec Git

Pourquoi utiliser git ? Objectifs : travailler à plusieurs sans se marcher dessus : indispensable pour les projets en équipe garder un historique propre de toutes les modifications : on organise son travail sous forme de “commits” documentés

La théorie de git Working directory 3 zones, 3 ambiances Les modifications sont sauvegardés 3 fois Working directory C’est la zone de travail : les fichiers tout juste modifiés sont ici Index Zone qui permet de stocker les modifications séléctionées en vue d’être commitées Local repository Code commité, prêt à être envoyé sur un serveur distant

Les commits Commit : ensemble de modifications cohérentes du code Un bon commit est un commit : qui ne concerne qu’une seule fonctionnalité du programme le plus petit possible tout en restant cohérent Idéalement qu’il compile seul C’est quoi concrètement un commit ? une différence (ajout / suppression de lignes) des méta-données (titre, hash, auteur) Insister sur le fait que le titre d’un commit est très important: il doit être suffisant et précis

Les commits Arbre de commits dans le git repository 4a7f5a6c478.. 7a4d5f97d8bb.. 0a4d9f8d4dda.. Formulaire ajout commentaire Ajout commentaire dans base de données Affichage des commentaires des publications Insister sur le fait que le titre d’un commit est très important: il doit être suffisant et précis

Aller jusqu’au commit Working directory 3 zones, 3 ambiances Les modifications sont sauvegardés 3 fois Working directory C’est la zone de travail : les fichiers tout juste modifiés sont ici Index Zone qui permet de stocker les modifications séléctionées en vue d’être commitées Local repository Code commité, prêt à être envoyé sur un serveur distant git add git commit

Aller jusqu’au commit git status Où j’en suis dans mes 3 zones ? On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: views/add_commentaire.php no changes added to commit (use "git add" and/or "git commit -a")

Aller jusqu’au commit git diff Visualiser les différences entre le working directory et l’index git diff diff --git a/views/add_commentaire.php b/views/add_commentaire.php index e69de29..8cff573 100644 --- a/views/add_commentaire.php +++ b/views/add_commentaire.php @@ -0,0 +1,6 @@ <?php include('header.php'); ?> +<form action="/commentaire/ajouter" method="post"> + <p>Pseudo : <input type="text" name="pseudo"/></p> + <p>Commentaire : <textarea name="commentaire"></textarea></p> +</form>

Aller jusqu’au commit git add views/add_commentaire.php git status Ajouter mes modifications à la zone de staging (index) git add views/add_commentaire.php git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: views/add_commentaire.php

Aller jusqu’au commit Récupitulatif des commandes affichage différences git diff git diff --staged working directory index git repository ajouter des modifications git add mon_fichier git add -p (interactif) git add -A (tout ajouter) git commit -m “message”

Revenir au dernier commit git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: model/commentaires_model.php no changes added to commit (use "git add" and/or "git commit -a")

Revenir au dernier commit Enlever des modifications dans le working directory git checkout -- monfichier git status On branch master nothing to commit, working directory clean

Désindexer des fichiers git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: model/commentaires_model.php

Désindexer des fichiers git reset HEAD monfichier git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: model/commentaires_model.php no changes added to commit (use "git add" and/or "git commit -a")

Aller jusqu’au commit Récupitulatif des commandes working directory index git repository git diff git diff --staged git add monfichier git commit -m “titre” git commit -am “titre” (si le fichier a déjà été indexé) git checkout -- monfichier git reset HEAD monfichier git reset --hard

Les branches branche : pointeur vers un commit une branche principale : master Branche courante : HEAD en général, une branche par fonctionnalité en cours de développement

Les branches master* C1 C2 C3 fonctionnalité C4 C5

Les branches et commits Arbre de commits dans le git repository HEAD master 4a7f5a6c478.. 7a4d5f97d8bb.. 0a4d9f8d4dda.. formulaire ajout commentaire ajout commentaire dans base de données affichage des commentaires des publications Insister sur le fait que le titre d’un commit est très important: il doit être suffisant et précis

Gestion des branches git branch : affichage des branches Création et modification de branches git branch : affichage des branches git branch ma_branche : créer la branche ma_branche git checkout ma_branche : déplace HEAD vers ma_branche ou pour simplifier... git checkout -b ma_branche : créer la branche ma_branche et déplace HEAD dessus

Gestion des branches Merge : intégration des modifications d’une branche dans la branche courante git merge ma_branche: merge ma branche dans la branche courante master* C1 C2 C3 bugFix C4 C5

Gestion des branches Merge : intégration des modifications d’une branche dans la branche courante git merge ma_branche: merge ma branche dans la branche courante master* C1 C2 C3 C6 bugFix C4 C5

Todo : jouer avec les commits et les branches Rendez-vous sur : http://urlz.fr/2uix Vous pourrez vous entrainer en dehors de la formation (raccourcis vers : http://onlywei.github.io/explain-git-with-d3/)

Centraliser les données sur un dépot git ! Les dépots distants Centraliser les données sur un dépot git !

Les dépôts distants git directory sur un serveur distant pour le travail collaboratif Dépots distants kikoos : github (pack étudiant) gitlab.my.ecp.fr Pourquoi gitlab ? code review, merge request, interface web, ...

Voir et ajouter des dépots distants Cloner un dépot distant : crée un dossier et récupère les fichiers git clone <url> Insister sur le fait qu’en local, on fait ce qu’on veut, on retouche nos commits précédents, on peut les renommer, revenir en arrière.. Une fois qu’ils sont pushés, il ne faut jamais y retoucher

Envoyer sur le dépot distant git push Envoie notre local repository sur le dépot distant On ne touche plus aux commits pushés ! Insister sur le fait qu’en local, on fait ce qu’on veut, on retouche nos commits précédents, on peut les renommer, revenir en arrière.. Une fois qu’ils sont pushés, il ne faut jamais y retoucher

Recevoir depuis le dépot distant git pull Récupère les commits sur le dépot distant et met à jour le working directory

Le schéma de base de git Récupitulatif des commandes working directory index git repository remote git repository git diff git diff --staged git add git commit git checkout -- git reset git reset --hard git push git pull git fetch

Installation de git Sous windows : https://git-for-windows.github.io/ http://babun.github.io/ (Emulateur de shell) Sous OS X : http://sourceforge.net/projects/git-osx-installer Sous Linux : <votre package manager> install git ( apt-get, rpm, …)

Authentification par clé Pour accéder aux dépots sur gitlab, il faut y ajouter sa clé On génère une paire de clés : ssh-keygen -t rsa -C "youremail@student.ecp.fr" On affiche le contenu de la clé publique : cat ~/.ssh/id_rsa.pub On copie tout le contenu de la clé publique sur gitlab.my.ecp.fr > mon profil > clés SSH

Configuration minimale git config --global user.name "Prénom Nom" git config --global user.email “prenom.nom@student.ecp.fr” En option mais c’est mieux : git config --global color.ui true git config --global color.diff.meta yellow

Git Workflow Démo en Live Présentation de tig

La zone de bordel : Stash Le stash ça sert à : Sauvegarder les modifications du working directory dans une zone tampon pour rendre le working directory propre. Possibilité de rejouer les modifications stashées n’importe où Peut être vu comme une zone de brouillons Exemple d’utilisation : Démo Live

Stash : les commandes On stash un ensemble de modifications git stash On récupères les modifications stashées git stash apply Pour plusieurs stashs : git stash list git stash apply stash@{id} Effacer le contenu du stash git stash clear

Pour aller plus loin avec git... git rebase ou git merge ? balader ses commits avec git cherry-pick afficher un commit : git show <commit> Engueulez vos amis : git blame <fichier> visualiser l’historique des commits : git log J’ai tout cassé ! git reflog