\documentclass[usepdftitle=false]{beamer} \usepackage[frenchb]{babel} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{graphicx} \usepackage{datetime} \usepackage{eurosym} \usepackage[]{url} \usepackage[babel=true]{csquotes} \hypersetup{ pdfauthor={Thibaud Duhautbout - Rémy Huet}, pdftitle={Formation Picaosft : La gestion de version avec Git}, pdfsubject={Formation niveau 1 : les bases}, pdfkeywords={git, gestion de version, VCS}, pdfproducer={Latex}, } \newdateformat{nombres}{\THEDAY-\THEMONTH-\THEYEAR} \title[Formation Git\_v1]{\today \\ Formation Picasoft : La gestion de version avec Git (niveau 1)} \titlegraphic{\includegraphics[scale=.1]{picasoft_logo.png}} \author[T. Duhautbout - R. Huet]{Thibaud {\sc Duhautbout} \\ Rémy {\sc Huet}} \institute[Picasoft]{Association Picasoft} \date\today \usetheme{AnnArbor} \usecolortheme{crane} \AtBeginSection[] { \begin{frame} \tableofcontents[currentsection, hideothersubsections] \end{frame} } \begin{document} \begin{frame} \titlepage \end{frame} \section{Introduction} \begin{frame}{Pourquoi la gestion de version ?} Pour tout le monde : \begin{itemize} \item sauvegarde incrémentale du travail \item suivi des modifications et retour en arrière \item partage des modifications avec d'autres personnes \end{itemize} \medskip Pour les développeurs : \begin{itemize} \item centralisation des sources \item collaboration simplifiée \item possibilité de maintenir plusieurs versions \item ... \end{itemize} \end{frame} \begin{frame}{Les différents logiciels de version} \includegraphics[height=2cm]{./imgs/logo_git.png} \hfill \includegraphics[height=2cm]{./imgs/logo_svn.png} \hfill \includegraphics[height=2cm]{./imgs/logo_mercurial.png} \bigskip \centering Et plein d'autres ! 37 systèmes recensés sur Wikipedia (\url{https://en.wikipedia.org/wiki/Comparison_of_version_control_software}) \end{frame} \begin{frame}{Petite histoire de git\ldots} \begin{center} \includegraphics[height=2cm]{./imgs/logo_git.png} \end{center} \begin{itemize} \item Créé en 2005 par les développeurs du noyau Linux \item Système de gestion de version distribué \item Rapide \item Possibilité de développements non-linéaires (branches) \item Popularité grandissante chez les développeurs (GitHub, GitLab) \end{itemize} \end{frame} \section{Concepts de base} \subsection{Configuration et initialisation} \begin{frame}{git config} git config -- Configuration de l'identité de l'utilisateur git init -- Initialisation du repo \end{frame} \subsection{\'Etat du repo local} \begin{frame}{git status} \end{frame} \subsection{Ajouter une version} \begin{frame}{git add -- reset -- commit} Staging area etc \end{frame} \subsection{Voir l'historique} \begin{frame}{git log} \end{frame} \begin{frame}{git diff} \end{frame} \section{Concepts avancés} \subsection{Le HEAD} \begin{frame}{Le HEAD} \end{frame} \subsection{Enregistrer les modifications locales} \begin{frame}{git stash} \end{frame} \subsection{Changer de version} \begin{frame}{git checkout} \end{frame} \subsection{Annuler les modifications sur un fichier précis} \begin{frame}{git checkout -- file} \end{frame} \section{Les remotes} \subsection{Principe et application avec Gitlab} \begin{frame}{Gitlab} Création d'un repo \end{frame} \subsection{Récupérer les ajouts distants} \begin{frame}{git clone -- git pull} cloner le repo de la présentation (en HTTPS) \end{frame} \subsection{Envoyer des modifications} \begin{frame}{git push} Sur repo perso \end{frame} \end{document}