Révision partielle de formations EOLE
This commit is contained in:
156
content/outils/scm/git/exercices/exercice_08/steps.tex
Normal file
156
content/outils/scm/git/exercices/exercice_08/steps.tex
Normal file
@ -0,0 +1,156 @@
|
||||
\begin{frame}
|
||||
\frametitle{Travail collaboratif}
|
||||
\framesubtitle{Nettoyage}
|
||||
\begin{minipage}{\textwidth}
|
||||
\begin{tikzpicture}
|
||||
%\begin{pgflowlevelscope}{\pgftransformscale{0.5}}
|
||||
\begin{pgflowlevel}{\pgftransformscale{0.6}}
|
||||
\gitDAG[grow right sep=1em]{
|
||||
fcacc8a -- a3a980c -- {6d7f839 -- {fe0c2b7 -- 6212e29 -- 0f13577 -- a60f3ed}}
|
||||
};
|
||||
\gitbranch
|
||||
{master}
|
||||
{above=of 6d7f839}
|
||||
{6d7f839}
|
||||
\gitbranch
|
||||
{histoire/confuse}
|
||||
{above=of a60f3ed}
|
||||
{a60f3ed}
|
||||
%\end{pgflowlevelscope}
|
||||
\end{pgflowlevel}
|
||||
\end{tikzpicture}
|
||||
\end{minipage}
|
||||
|
||||
Le scénario proposé pour le nettoyage s'appuie sur la branche \emph{histoire/confuse}.
|
||||
|
||||
Les \emph{commit} n'y sont pas cohérents : mélange de corrections syntaxiques, orthographiques et grammaticales.
|
||||
Le but est de redonner de la lisibilité à l'historique du dépôt en le réécrivant à l'aide de \commande{git rebase -i} et \commande{git add -i}.
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Travail collaboratif}
|
||||
\framesubtitle{Nettoyage}
|
||||
\begin{enumerate}[<+->]
|
||||
\item \commande{git checkout histoire/confuse}
|
||||
\item \commande{git show master..} \# aperçu des modifications à réorganiser
|
||||
\item \commande{git rebase -i \$(git merge-base --fork-point master)} \# rebase de tous les commits depuis la divergence avec la branche \emph{master}
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Travail collaboratif}
|
||||
\framesubtitle{Nettoyage}
|
||||
À l'origine :
|
||||
\begin{minted}[fontsize=\tiny]{console}
|
||||
pick fe0c2b7 Commit un peu rapide.
|
||||
pick 6212e29 Premier commit de correction
|
||||
pick 0f13577 Deuxième commit de correction
|
||||
pick a60f3ed Troisième et dernier (on espère) commit de correction
|
||||
\end{minted}
|
||||
Ce qu'on veut faire :
|
||||
\begin{itemize}
|
||||
\item un \emph{commit} pour les espaces superflues (0f13577 et 6212e29)
|
||||
\item un \emph{commit} pour l'orthographe et la grammaire (0f13577, a60f3ed et 6212e29)
|
||||
\item un \emph{commit} pour le contresens
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Travail collaboratif}
|
||||
\framesubtitle{Nettoyage}
|
||||
\begin{enumerate}[<+->]
|
||||
\item s'arrêter sur le \emph{commit} 6212e29 et répartir les modifications sur trois \emph{commit}
|
||||
\item s'arrèter sur le \emph{commit} 0f13577 et répartir les modifications sur deux \emph{commit}
|
||||
\item reformuler le message du \emph{commit} a60f3ed
|
||||
\end{enumerate}
|
||||
\begin{minted}[fontsize=\tiny]{console}
|
||||
pick fe0c2b7 Commit un peu rapide.
|
||||
e 6212e29 Premier commit de correction
|
||||
e 0f13577 Deuxième commit de correction
|
||||
r a60f3ed Troisième et dernier (on espère) commit de correction
|
||||
\end{minted}
|
||||
\end{frame}
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Travail collaboratif}
|
||||
\framesubtitle{Nettoyage}
|
||||
Pour chaque \emph{commit} édité :
|
||||
\begin{enumerate}[<+->]
|
||||
\item \commande{git reset HEAD\~{}1}
|
||||
\item \commande{git add -i}
|
||||
\item \commande{patch} et sélection du fichier à éditer
|
||||
\item validation, refus ou édition du fragment de patch
|
||||
\item sortie du mode patch
|
||||
\item \commande{git add doc/README} suivi de \commande{git commit}
|
||||
\item si il n'y a plus de modifications, \commande{git rebase --continue}, sinon, retour à l'étape 2
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Travail collaboratif}
|
||||
\framesubtitle{Nettoyage}
|
||||
\begin{minted}[fontsize=\tiny]{console}
|
||||
f500056 Corrections orthographiques et grammaticales
|
||||
a11256a Suppression des espaces superflues
|
||||
1a03003 Corrections orthographiques et grammaticales
|
||||
f48a802 Corrections orthographiques et grammaticales
|
||||
9ed1adb Suppression des espaces superflues
|
||||
7236369 Correction du contresens
|
||||
fe0c2b7 Commit un peu rapide.
|
||||
\end{minted}
|
||||
\end{frame}
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Travail collaboratif}
|
||||
\framesubtitle{Nettoyage}
|
||||
Prêt pour la seconde passe.
|
||||
\begin{minted}[fontsize=\tiny]{console}
|
||||
pick fe0c2b7 Commit un peu rapide.
|
||||
pick 7236369 Correction du contresens
|
||||
pick 9ed1adb Suppression des espaces superflues
|
||||
s a11256a Suppression des espaces superflues
|
||||
pick f48a802 Corrections orthographiques et grammaticales
|
||||
s 1a03003 Corrections orthographiques et grammaticales
|
||||
s f500056 Corrections orthographiques et grammaticales
|
||||
\end{minted}
|
||||
\end{frame}
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Travail collaboratif}
|
||||
\framesubtitle{Nettoyage}
|
||||
Prêt pour la seconde passe.
|
||||
\begin{minted}[fontsize=\tiny]{console}
|
||||
f7caf4b Corrections orthographiques et grammaticales
|
||||
cdcf39e Suppression des espaces superflues
|
||||
7236369 Correction du contresens
|
||||
fe0c2b7 Commit un peu rapide.
|
||||
\end{minted}
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Travail collaboratif}
|
||||
\framesubtitle{Nettoyage}
|
||||
Évidemment, dans la situation décrite, peu de modifications mais imbriquées, un résultat équivalent mais plus rapidement obtenu avec :
|
||||
\begin{enumerate}[<+->]
|
||||
\item \commande{git reset \$(git merge-base --fork-point master)}
|
||||
\item \commande{git add -i}
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Travail collaboratif}
|
||||
\framesubtitle{Nettoyage}
|
||||
\begin{minipage}{\textwidth}
|
||||
\begin{tikzpicture}
|
||||
%\begin{pgflowlevelscope}{\pgftransformscale{0.5}}
|
||||
\begin{pgflowlevel}{\pgftransformscale{0.6}}
|
||||
\gitDAG[grow right sep=1em]{
|
||||
fcacc8a -- a3a980c -- {902ae87}
|
||||
};
|
||||
\gitbranch
|
||||
{brancheindiscrete}
|
||||
{above=of 902ae87}
|
||||
{902ae87}
|
||||
%\end{pgflowlevelscope}
|
||||
\end{pgflowlevel}
|
||||
\end{tikzpicture}
|
||||
\end{minipage}
|
||||
|
||||
Il ne reste plus qu'à purger les \emph{commit} de tous les fichiers embarrassants, ajoutés par inadvertance.
|
||||
\begin{enumerate}[<+->]
|
||||
\item \commande{git checkout branche\_indiscrete}
|
||||
\item \commande{git filter-branch --tree-filter "git rm password" master..}
|
||||
\end{enumerate}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
Reference in New Issue
Block a user