Skip to content
Snippets Groups Projects
Commit 1ba45ccf authored by Philippe Dosch's avatar Philippe Dosch
Browse files

Finalizes the rebase part and introduces comparaison between merge and rebase

parent ccdc32f5
Branches
No related tags found
No related merge requests found
......@@ -93,7 +93,7 @@
%======================================================================
\frame{\frametitle{Fonctionnement}
\frame{\frametitle{Principe de fonctionnement}
\begin{itemize}
\item
Pour réaliser la fusion, Git repose, en interne, sur la
......@@ -122,23 +122,31 @@
\begin{itemize}
\item
Au lieu d'effectuer une fusion au moyen de la commande \ex{merge},
il est possible d'obtenir un résultat similaire en réécrivant
l'historique au moyen de la commande \ex{rebase}
il est possible d'obtenir un résultat similaire en réécrivant (on
dit aussi \emph{en rejouant}) l'historique au moyen de la commande
\ex{rebase}
\item
Un des usages fait de cette commande est de garder une nouvelle
branche synchronisée avec la branche dont elle est issue
\end{itemize}
}
%======================================================================
\frame{\frametitle{Une alternative à la fusion}
\begin{itemize}
\item
Pour assurer cette synchronisation
\begin{itemize}
\item
la commande \ex{rebase} est alors appliqué régulièrement pour
que la nouvelle branche « profite » aussi des \emph{commits}
réalisés dans la branche de départ
la commande \ex{rebase} est doit être appliquée régulièrement
pour que la nouvelle branche « profite » aussi des
\emph{commits} réalisés dans la branche de départ
\item
la fusion finale est généralement facilitée, la synchronisation
régulière permettant de régler les éventuels conflits au fur et
à mesure
\end{itemize}
% L'insertion de figures telles que celles présentées pages 165-166
% du bouquin O'Reilly doit permettre de mieux comprendre cet aspect
\end{itemize}
}
......@@ -147,14 +155,20 @@
\frame{\frametitle{Principe de fonctionnement}
\begin{itemize}
\item
La commande \ex{rebase} réécrit chacun des commits à considérer
pour qu'ils s'appliquent au contexte de la branche sur laquelle
ils sont portés
\item
Incidemment, la commande \ex{rebase} est souvent présentée comme
une commande de \emph{réécriture}
La commande \ex{rebase}
\begin{enumerate}
\item
cherche l'ancêtre commun aux deux branches considérées~: ce sera
le premier \emph{commit} à réécrire
\item
réécrit chacun des commits de la nouvelle branche pour qu'ils ne
soient plus relatifs à l'ancêtre commun mais au dernier commit
de la branche de départ
\end{enumerate}
\item
Au final, la nouvelle branche intègre aussi bien les
\emph{commits} qui lui sont spécifiques que ceux ajoutés à la
branche de départ
\end{itemize}
}
......@@ -179,13 +193,45 @@
%======================================================================
\frame{\frametitle{\texttt{rebase} \emph{vs} \texttt{merge}}
\subsection{Comparaison de \texttt{merge} et de \texttt{rebase}}
%======================================================================
\frame{\frametitle{\texttt{merge} \emph{vs} \texttt{rebase}}
\begin{itemize}
\item
Remarques
\begin{itemize}
\item
après un \ex{merge}, c'est la branche de départ qui contient
l'intégralité des \emph{commits} réalisés (branche de base +
nouvelle fonctionnalité)
\item
après un \ex{rebase}, c'est la nouvelle branche qui contient
l'intégralité des \emph{commits} réalisés
\end{itemize}
\item
Le résultat obtenu avec un \ex{rebase} est relativement similaire
à celui obtenu avec un \ex{merge} : dans les deux cas, la branche
destination intègre tous les apports des \emph{commits} des deux
branches considérées
On peut se demander quelle commande il est préférable d'utiliser
en général ou si certains contextes conditionnent plutôt l'usage
de l'une ou de l'autre des commandes
\end{itemize}
}
%======================================================================
\frame{\frametitle{\texttt{rebase} \emph{vs} \texttt{merge}}
\begin{itemize}
\item
Remarques
\begin{itemize}
\item
après un \ex{merge}, c'est la branche de départ qui contient
l'intégralité des \emph{commits} réalisés (branche de base +
nouvelle fonctionnalité)
\item
après un \ex{rebase}, c'est la nouvelle branche qui contient
l'intégralité des \emph{commits} réalisés
\end{itemize}
\item
On peut donc se demander s'il est préférable d'utiliser l'une ou
l'autre des commandes ou si certains environnements conditionnent
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment