Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
G
git-jso
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
DOSCH Philippe
git-jso
Commits
1ba45ccf
Commit
1ba45ccf
authored
11 years ago
by
Philippe Dosch
Browse files
Options
Downloads
Patches
Plain Diff
Finalizes the rebase part and introduces comparaison between merge and rebase
parent
ccdc32f5
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
branchmerge.tex
+66
-20
66 additions, 20 deletions
branchmerge.tex
with
66 additions
and
20 deletions
branchmerge.tex
+
66
−
20
View file @
1ba45ccf
...
...
@@ -93,7 +93,7 @@
%======================================================================
\frame
{
\frametitle
{
F
onctionnement
}
\frame
{
\frametitle
{
Principe de f
onctionnement
}
\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
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment