diff --git a/src/tex/versionner_travail/gestion_lineaire_pratique.tex b/src/tex/versionner_travail/gestion_lineaire_pratique.tex index 23dd916fbc5f468293ed91f3893788e1c7650b34..f8d59586e0952963e39e62b109999d3dca8b85da 100644 --- a/src/tex/versionner_travail/gestion_lineaire_pratique.tex +++ b/src/tex/versionner_travail/gestion_lineaire_pratique.tex @@ -1,28 +1,262 @@ -\begin{frame} +\begin{frame}[fragile] \frametitle{Créer des versions} \framesubtitle{Working Directory <-> Staging Area} + + \begin{block}{} + \centering + Pour créer une version, il faut d'abord préarer le commit : les modifications apportées au \emph{working directory} sont ajoutées au \emph{staging area}. + \end{block} + + \Pause + + \bigskip + + Ajouter les modifications d'un fichier pour validation : \\ + \verb+$ git add + + + \medskip + + Ajouter toutes les modifications pour validation (tous les fichiers) : \\ + \verb+$ git add -A+ + + \medskip + + Enlever les modifications d'un fichier de la validation : \\ + \verb+$ git reset + \\ + {\it (ne change pas le contenu du fichier mais indique juste à git d'ignorer ses modifications pour la validation)} +\end{frame} + +\begin{frame}[fragile]{} + + \begin{beamercolorbox}[rounded=true,shadow=true]{terminal} + \vspace{-\seplength} + \begin{Verbatim} +$ echo "Je suis le premier fichier utilisé pour cette API sur git" > API.txt + +$ git status +Sur la branche master +Aucun commit +Fichiers non suivis: + + \textcolor{red}{API.txt} + \end{Verbatim} + \Pause + \vspace{-\seplength} + \begin{Verbatim} +$ git add API.txt + \end{Verbatim} + \Pause + \vspace{-\seplength} + \begin{Verbatim} +$ git status +Sur la branche master + +Aucun commit + +Modifications qui seront validées : + (utilisez "git rm --cached ..." pour désindexer) + + \textcolor{green}{nouveau fichier : API.txt} + \end{Verbatim} + \Pause + \vspace{-\seplength} + \begin{Verbatim} +$ git reset API.txt + \end{Verbatim} + \Pause + \vspace{-\seplength} + \begin{Verbatim} +$ git status +Sur la branche master +Aucun commit +Fichiers non suivis: + + \textcolor{red}{API.txt} + +$ git add API.txt + \end{Verbatim} + \end{beamercolorbox} \end{frame} -\begin{frame} +\begin{frame}[fragile] \frametitle{Créer des versions} \framesubtitle{Staging Area <-> Repository} + + \begin{block}{} + \centering + Une fois que la version est prête, on peut valider le commit pour envoyer la version du \emph{staging area} vers le \emph{repository}. + \end{block} + + \bigskip + + Pour valider les changements qui ont été ajoutés au staging area :\\ + \verb+$ git commit+ + + \medskip + + Le commit doit contenir un message qui résume le contenu des modifications. + Pour l'entrer directement : \\ + \verb+$ git commit -m ""+ \\ + + \bigskip + + \begin{beamercolorbox}[rounded=true,shadow=true]{terminal} + \vspace{-\seplength} + \begin{Verbatim} +$ git commit -m "Ajout du premier fichier" +[master (commit racine) 712951d] Ajout du premier fichier + 1 file changed, 1 insertion(+) + create mode 100644 API.txt + \end{Verbatim} + \end{beamercolorbox} \end{frame} -\begin{frame} - \frametitle{Dissection d'un commit} +\begin{frame}{Dissection d'un commit} + \begin{block}{À propos du commit} + \begin{itemize} + \item Chaque commit possède un identifiant unique ; + \item Un commit est asocié à une unique personne ; + \item L'historique des commits est incrémental. Tout commit (excepté le premier) a un commit \enquote{père} ; + \item Un commit correspond à une version figée du projet ; + \item On peut naviguer dans les commits. + \end{itemize} + \end{block} \end{frame} -\begin{frame} +\begin{frame}[fragile] \frametitle{Visualiser des différences} \framesubtitle{Git log} + + Afficher l'historique des commits + \begin{beamercolorbox}[rounded=true,shadow=true]{terminal} + \vspace{-\seplength} + \begin{Verbatim} +$ git log +\textcolor{yellow}{commit 712951dbb3ee0cc4d248582dc5408da3afdec853 (}{\bf \textcolor{cyan}{HEAD -> }\textcolor{green}{master}} \textcolor{yellow}{)} +Author: Thibaud Duhautbout +Date: Thu Jan 3 15:37:54 2019 +0100 + + Ajout du premier fichier + \end{Verbatim} + \end{beamercolorbox} + \Pause + On peut voir ici : \Pause + \begin{itemize} + \item L'identifiant unique du commit; \Pause + \item L'auteur (et son mail); \Pause + \item La date du commit; \Pause + \item Le message qui a été mis lors du commit. + \end{itemize} \end{frame} -\begin{frame} +\begin{frame}[fragile] \frametitle{Visualiser des différences} \framesubtitle{Git diff} + + Le diff permet de voir les modifications apportées au dépôt : + \begin{itemize} + \item Depuis l'état du staging area : \verb+$ git diff+; + \item Depuis le dernier commit : \verb+$ git diff HEAD+; + \item Depuis un commit quelconque : \verb+$ git diff +; + \item Entre deux commits quelconques : \verb+$ git diff +. + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \begin{beamercolorbox}[rounded=true,shadow=true]{terminal} +\vspace{-\seplength} +\begin{Verbatim} +$ echo "J'ajoute une ligne à mon fichier" >> API.txt + +$\Pause git diff + +{\bf diff --git a/API.txt b/API.txt} +{\bf index 7eec119..5596950 100644} +{\bf --- a/API.txt} +{\bf +++ b/API.txt} +\textcolor{cyan}{@@ -1 +1,2 @@} + Je suis le premier fichier utilisé pour cette API sur git +\textcolor{myGreen}{+J'ajoute une ligne à mon fichier} + +$\Pause git add API.txt + +$\Pause git diff + +$\Pause git diff HEAD + +{\bf diff --git a/API.txt b/API.txt} +{\bf index 7eec119..5596950 100644} +{\bf --- a/API.txt} +{\bf +++ b/API.txt} +\textcolor{cyan}{@@ -1 +1,2 @@} + Je suis le premier fichier utilisé pour cette API sur git +\textcolor{myGreen}{+J'ajoute une ligne à mon fichier} + +$\Pause git commit -m "Second commit" + +[master 5b63bd1] Second commit + 1 file changed, 1 insertion(+) + +\end{Verbatim} + \end{beamercolorbox} \end{frame} -\begin{frame} +\begin{frame}[fragile] + \begin{beamercolorbox}[rounded=true,shadow=true]{terminal} +\vspace{-\seplength} + \begin{Verbatim} +$ git log + +\textcolor{yellow}{commit 5b63bd1f9afe4685b60074030960e39bb5152e67 (}{\bf\textcolor{cyan}{HEAD ->}\textcolor{green}{ master}}\textcolor{yellow}{)} +Author: Thibaud Duhautbout +Date: Thu Jan 3 15:55:33 2019 +0100 + + Second commit + +\textcolor{yellow}{commit 712951dbb3ee0cc4d248582dc5408da3afdec853} +Author: Thibaud Duhautbout +Date: Thu Jan 3 15:37:54 2019 +0100 + + Ajout du premier fichier + +$\Pause git diff 712951 5b63bd + +{\bf diff --git a/API.txt b/API.txt} +{\bf index 7eec119..5596950 100644} +{\bf --- a/API.txt} +{\bf +++ b/API.txt} +\textcolor{cyan}{@@ -1 +1,2 @@} + Je suis le premier fichier utilisé pour cette API sur git +\textcolor{myGreen}{+J'ajoute une ligne à mon fichier} + \end{Verbatim} + \end{beamercolorbox} +\end{frame} + +\begin{frame}[fragile] \frametitle{Visualiser des différences} \framesubtitle{Git show} + + Pour visualiser les modifications introduites par un commit spécifique :\\ + \verb+$ git show + + + \bigskip + + \begin{beamercolorbox}[rounded=true,shadow=true]{terminal} +\vspace{-\seplength} + \begin{Verbatim} +\textcolor{yellow}{commit 5b63bd1f9afe4685b60074030960e39bb5152e67 (}{\bf\textcolor{cyan}{HEAD ->}\textcolor{green}{ master}}\textcolor{yellow}{)} +Author: Thibaud Duhautbout +Date: Thu Jan 3 15:55:33 2019 +0100 + + Second commit + +{\bf diff --git a/API.txt b/API.txt} +{\bf index 7eec119..5596950 100644} +{\bf --- a/API.txt} +{\bf +++ b/API.txt} +\textcolor{cyan}{@@ -1 +1,2 @@} + Je suis le premier fichier utilisé pour cette API sur git +\textcolor{myGreen}{+J'ajoute une ligne à mon fichier} + \end{Verbatim} + \end{beamercolorbox} \end{frame}