parcourir_historique.tex 5.18 KB
Newer Older
1
\begin{frame}[fragile]
Rémy Huet's avatar
Rémy Huet committed
2
	\frametitle{Changer de version}
3 4 5 6 7 8 9 10 11 12 13 14

	\begin{block}{}
		\enquote{
			Dis, la prof nous demande la version de la semaine dernière, comment je peux la récupérer ?
			-- Utilises git checkout !
		}
	\end{block}

	\verb+git checkout+ permet de déplacer le \verb+HEAD+ sur un commit via son sha ou une etiquette (un tag par exemple)

	\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
		\begin{Verbatim}
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
$ git log --graph --decorate \Pause
* \textcolor{yellow}{commit a04da653083b6b0ba3eea2bce98d903acfd0a4d3 (}{\bf\textcolor{cyan}{HEAD ->} \textcolor{green}{master}}\textcolor{yellow}{)}
\textcolor{red}{|} Author: huetremy <remy.huet@etu.utc.fr>
\textcolor{red}{|} Date:   Fri Jan 11 10:16:10 2019 +0100
\textcolor{red}{|}
\textcolor{red}{|}     Troisième commit
\textcolor{red}{|}
* \textcolor{yellow}{commit 5b63bd1f9afe4685b60074030960e39bb5152e67} \textcolor{red}{<---- Cette version là !}
\textcolor{red}{|} Author: Thibaud Duhautbout <thibaud@duhautbout.ovh>
\textcolor{red}{|} Date:   Thu Jan 3 15:55:33 2019 +0100
\textcolor{red}{|}
\textcolor{red}{|}     Second commit
\textcolor{red}{|}
* \textcolor{yellow}{commit 712951dbb3ee0cc4d248582dc5408da3afdec853 (tag: mon_tag)}
  Author: Thibaud Duhautbout <thibaud@duhautbout.ovh>
  Date:   Thu Jan 3 15:37:54 2019 +0100

      Ajout du premier fichier

34 35 36
		\end{Verbatim}
	\end{beamercolorbox}

Rémy Huet's avatar
Rémy Huet committed
37 38
\end{frame}

39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
\begin{frame}[fragile]
	\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
		\begin{Verbatim}
$ git checkout HEAD\~{}1 \Pause
Note : extraction de 'HEAD~1'.

Vous êtes dans l'état « HEAD détachée ». Vous pouvez visiter, faire des modifications
expérimentales et les valider. Il vous suffit de faire une autre extraction pour
abandonner les commits que vous faites dans cet état sans impacter les autres branches

Si vous voulez créer une nouvelle branche pour conserver les commits que vous créez,
il vous suffit d'utiliser « checkout -b » (maintenant ou plus tard) comme ceci :

  git checkout -b <nom-de-la-nouvelle-branche>

HEAD est maintenant sur 5b63bd1 Second commit \Pause

$ git status \Pause
\textcolor{red}{HEAD détachée sur }5b63bd1
rien à valider, la copie de travail est propre \Pause

$ git log --graph --decorate --all \Pause
* \textcolor{yellow}{commit a04da653083b6b0ba3eea2bce98d903acfd0a4d3 (}{\bf\textcolor{green}{master}}\textcolor{yellow}{)}
\textcolor{red}{|} Author: huetremy <remy.huet@etu.utc.fr>
\textcolor{red}{|} Date:   Fri Jan 11 10:16:10 2019 +0100
\textcolor{red}{|}
\textcolor{red}{|}     Troisième commit
\textcolor{red}{|}
* \textcolor{yellow}{commit 5b63bd1f9afe4685b60074030960e39bb5152e67 (}{\bf\textcolor{cyan}{HEAD}}\textcolor{yellow}{)}
\textcolor{red}{|} Author: Thibaud Duhautbout <thibaud@duhautbout.ovh>
\textcolor{red}{|} Date:   Thu Jan 3 15:55:33 2019 +0100
\textcolor{red}{|}
\textcolor{red}{|}     Second commit
\textcolor{red}{|}
[\ldots]
		\end{Verbatim}
	\end{beamercolorbox}
\end{frame}

78
\begin{frame}[fragile]
Rémy Huet's avatar
Rémy Huet committed
79
	\frametitle{Revenir au dernier commit}
80 81 82

	\begin{block}{}
		\enquote{Et comment je retourne à ma version ?}
Rémy Huet's avatar
Rémy Huet committed
83
	\end{block} \Pause
84 85 86

	\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
		\begin{Verbatim}
Rémy Huet's avatar
Rémy Huet committed
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
$ git checkout master \Pause
La position précédente de HEAD était sur 5b63bd1 Second commit
Basculement sur la branche 'master'
Votre branche est à jour avec 'origin/master'. \Pause

$ git log --graph --decorate \Pause
* \textcolor{yellow}{commit a04da653083b6b0ba3eea2bce98d903acfd0a4d3 (}{\bf\textcolor{cyan}{HEAD ->} \textcolor{green}{master}}\textcolor{yellow}{)}
\textcolor{red}{|} Author: huetremy <remy.huet@etu.utc.fr>
\textcolor{red}{|} Date:   Fri Jan 11 10:16:10 2019 +0100
\textcolor{red}{|}
\textcolor{red}{|}     Troisième commit
\textcolor{red}{|}
* \textcolor{yellow}{commit 5b63bd1f9afe4685b60074030960e39bb5152e67}
\textcolor{red}{|} Author: Thibaud Duhautbout <thibaud@duhautbout.ovh>
\textcolor{red}{|} Date:   Thu Jan 3 15:55:33 2019 +0100
\textcolor{red}{|}
\textcolor{red}{|}     Second commit
\textcolor{red}{|}
* \textcolor{yellow}{commit 712951dbb3ee0cc4d248582dc5408da3afdec853 (tag: mon_tag)}
  Author: Thibaud Duhautbout <thibaud@duhautbout.ovh>
  Date:   Thu Jan 3 15:37:54 2019 +0100

      Ajout du premier fichier

111 112 113
		\end{Verbatim}
	\end{beamercolorbox}

Rémy Huet's avatar
Rémy Huet committed
114 115
\end{frame}

116
\begin{frame}[fragile]
Rémy Huet's avatar
Rémy Huet committed
117
	\frametitle{Annuler des changements}
118 119 120 121 122 123 124 125 126 127 128 129

	\begin{block}{}
		\enquote{
			Dis, j'ai fait des modifications qui ont tout cassé, y'a moyen de revenir en arrière ? \\
			-- Oui ! git checkout \--\--
		}
	\end{block}

	\verb+git checkout -- <fichier/dossier>+ permet de remettre un fichier ou un dossier dans l'état du dernier commit

	\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
		\begin{Verbatim}
Rémy Huet's avatar
Rémy Huet committed
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
$ echo 'Ligne qui casse tout' | cat | cat | cat > API.txt \Pause
$ git diff \Pause
{\bf{}diff --git a/API.txt b/API.txt}
{\bf{}index a03f78c..85468b3 100644}
{\bf{}--- a/API.txt}
{\bf{}+++ b/API.txt}
\textcolor{cyan}{@@ -1,3 +1 @@}
\textcolor{red}{-Je suis le premier fichier utilisé pour cette API sur git}
\textcolor{red}{-J'ajoute une ligne à mon fichier}
\textcolor{red}{-Encore une ligne en plus !}
\textcolor{myGreen}{+Ligne qui casse tout} \Pause

$ git checkout -- API.txt \Pause

$ git diff \Pause
145 146
		\end{Verbatim}
	\end{beamercolorbox}
Rémy Huet's avatar
Rémy Huet committed
147
\end{frame}