====== Séminaire Git Avancé ====== Le Service d'Expérimentation et de Développement (SED) du centre Inria de Lyon s'associe au réseau ARAMIS pour vous proposer, le jeudi 31 mars 2022 un séminaire d'une journée sur des aspects avancés du gestionnaire de versions [[https://git-scm.com/|git]]. L'objectif est de maîtriser un ensemble de fonctionnalités avancées de Git afin de pouvoir tirer pleinement parti de cet outil et pouvoir adapter son utilisation en fonction du contexte. Plus précisément, ce séminaire vous aidera à : * Comprendre le fonctionnement interne de git pour mieux appréhender l'outil dans son ensemble * Connaître un large spectre de fonctionnalités offertes par git * Maîtriser une utilisation raisonnablement complexe de ces outils Au cours de ce séminaire, nous alternerons présentation et exercices d'application sur machine. Ce séminaire s'adresse avant tout à un public de programmeurs de tous horizons (ingénieurs, doctorants, chercheurs, ...) mais est ouvert à tous. Seule contrainte forte : Les participants doivent avoir une bonne maîtrise des fondamentaux de l'outil Git (~contenu du [[ateliers:gitintro-112021|Journée Introduction à Git]]) ===== Intervenants ===== La journée sera animée par David Parsons, Ingénieur de Recherche Inria ===== Supports ===== https://parsons.eu/git/advanced/ ===== Webcast / Diffusion en ligne ===== La journée a été captée par la cellule webcast du CC-IN2P3 : https://webcast.in2p3.fr/container/journee-git-avance ===== Pré-requis ===== Amener son portable sur lequel vous aurez installé les outils suivants : * git, gitk et git-gui * voir https://git-scm.com/book/fr/v2/D%C3%A9marrage-rapide-Installation-de-Git * pour les utilisateurs windows : Il vous sera demandé au cours de l'installation de choisir un éditeur de texte. Je vous suggère fortement d'en choisir un autre que vim (choix par défaut). Ma suggestion : nano * un "mergetool" (outil de fusion de fichiers) * exemple : Meld (https://meldmerge.org/) * cet outil doit être lançable en ligne de commande * un client ssh et un générateur de clé ssh * pour les utilisateurs windows : PuTTY et PuTTYgen (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) Merci d'installer ces outils **avant** le séminaire. Vous pouvez vérifier votre installation en suivant les instructions de [[ateliers:git-check-install|cette page]]. Si vous rencontrez des difficultés, n'hésitez pas à nous contacter). ===== Programme ===== ==== 9h - 11h30 ==== * Rappels * Généralités (dont working directory / staging area / local repository / remote repository) * Gestion des conflits * Choses à savoir * Configurer git * Detached HEAD ? * Remote tracking branches et Upstream branches * Plongée dans les entrailles de git * Petits outils intéressants * Patches * Cherry-picking * Commits "partiels" * Stash * Bisect ==== 11h30 - 12h30 ==== * Travaux Pratiques ==== 13h45 - 16h00 ==== * Réécrire l'histoire * Commit --amend * Rebase * Discussion : pull vs fetch + merge ou rebase * Fast-forward et true-merge * Rebase interactif * Undoing things * Unstage * "Unmodify" a file * Undo a commit * Reset * Filter-branch (simple évocation) * Gérer les dépôts distants (remotes) * Autres outils d'intérêt * git svn * git submodules et git subrepo * git annex et git lfs * hooks * rerere ==== 16h00 - 17h00 ==== * Travaux Pratiques ===== Ressources ===== * documentation de référence : https://git-scm.com/book/fr/v2, https://git-scm.com/book/en/v2 * pour expérimenter visuellement les commandes de branchement, de merge et de rebase : http://learngitbranching.js.org/ ===== Inscription ===== La journée est limitée à **30 participants**, sous réserve de nouvelles directives qui pourraient nous amener à adapter le nombre de participants en présentiel. Merci de vous inscrire ici : https://evento.renater.fr/survey/seminaire-git-avance-c745hf9o Le nombre d'inscriptions n'est pas limité sur l'Evento, **nous préviendrons les personnes retenues par mail** (le mode d'inscription est premier inscrit, premier retenu). Les demandes d'ordre de mission et les éventuels frais de mission seront à la charge des participants **Date** : jeudi 31 mars 2022 de 9h00 à 17h00 **Lieu** : Le lieu est le **Centre de Calcul de l'IN2P3/CNRS** sur le campus de la Doua à Villeurbanne. http://cc.in2p3.fr/contact/ IL EST NÉCESSAIRE DE SE MUNIR D'UNE PIÈCE D'IDENTITÉ ET DE SON PASS SANITAIRE. ===== Repas ===== Le repas sera pris en charge par le Service d'Expérimentation et de Développement du centre Inria de Lyon