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

Restructuration de la partie collaborative

parent a7815711
No related branches found
No related tags found
No related merge requests found
%======================================================================
\subsection{Introduction}
\subsection{Introduction, commandes additionnelles}
%======================================================================
......@@ -19,14 +19,14 @@
Une possibilité : utiliser une forge (Github, gitlab,
Bitbucket...)
\item
Deux commandes pour le raccordement\\
(à réaliser par le contributeur principal)
Pour le primo-contributeur, deux commandes à utiliser pour le
raccordement
\begin{itemize}
\item
syntaxe de raccordement\\
syntaxe de déclaration de dépôt distant\\
\ex{git remote add \emph{nom} \emph{URL}}
\item
exemple de raccordement\\
exemple de déclaration de dépôt distant\\
\ex{git remote add origin git@github.com:dosch/test.git}
\item
première synchronisation\\
......@@ -47,17 +47,34 @@
%======================================================================
\frame{\frametitle{Principes du \emph{workflow}}
\frame{\frametitle{Principes du \emph{workflow} de collaboration}
\begin{itemize}
\item
pull = fetch + merge pour info (pour aller plus loin ?)
Repose sur 2 commandes principale
\begin{itemize}
\item
\ex{git push} : envoi de ses commits au dépôt distant
\item
\ex{git pull} : récupération des commits des autres
collaborateurs\\
En interne, utilise 2 commandes \ex{git}
\begin{itemize}
\item
\ex{git fetch} : pour la récupération brute des commits
\item
\ex{git merge} : pour la fusion des contributions
\end{itemize}
Ces aspects seront développés dans un futur cours sur les
branches
\end{itemize}
\item
Récupération des autres contributions avant d'apporter les siennes
Attention : il faut d'abord récupérer les contributions des autres
membres avant d'apporter les siennes
\begin{itemize}
\item
on choisit le moment (c'est manuel)
on tombe sur une erreur si le \emph{workflow} n'est pas respecté
\item
message d'erreur si le \emph{workflow} n'est pas respecté
mais on reste maître du moment des synchronisations
\end{itemize}
\end{itemize}
}
......@@ -84,6 +101,74 @@
%======================================================================
\frame{\frametitle{\ex{git pull}}
\framesubtitle{\gitsync}
\begin{itemize}
\item
Récupère les changements du dépôt distant et les fusionne dans le
dépôt local et le répertoire de travail
\item
Peut d'ailleurs être utilisé pour récupérer des changements de
n'importe quel dépôt distant...
\item
À utiliser avant de propager les changements du dépôt local vers
le dépôt distant (\ex{git push}) s'il y eu des changements sur le
dépôt distant
\item
L'option \ex{-{}-rebase} permet d'effectuer une fusion sans
provoquer l'ajout d'un nouveau commit formalisant cette fusion
\end{itemize}
}
%======================================================================
% À propos de 'git pull' : par défaut, cette commande effectue un fetch,
% suivi d'un merge. L'effet de bord le plus notable est que le pull
% conduit à un nouveau commit si le dépôt local contient des
% modifications non poussées (et non poussables si le pull est
% nécessaire).
% Une manière d'éviter ce nouveau commit est de passer par un
% 'git pull --rebase' à la place du simple 'git pull'. Dans ce cas, un
% fetch sera aussi effectué, et un rebase « intelligent » par la
% suite. À noter, comme rebase effectue une modification de l'historique
% (ce qui n'est jamais bon dès qu'on dépasse le stade local), ce genre
% de manipulations ne doit pas être effectué dans certaines
% configurations. Il semble que les architectures à base d'un unique
% dépôt central ne soit pas concernée, mais ce n'est pas le cas des
% architectures où plusieurs dépôt distants sont utilisés. Dans ce cas,
% cette variante à base de 'rebase' est à proscrire.
% Des détails en particulier sur :
% http://stackoverflow.com/questions/6284887/whats-the-difference-between-git-fetch-then-git-rebase-and-git-pull-reb/11531502#11531502
%======================================================================
\frame{\frametitle{\ex{git push}}
\framesubtitle{\gitsync}
\begin{itemize}
\item
Propage les changements du dépôt local vers le distant
\item
Précision : plusieurs stratégies de mises à jour existent (voir le
transparent sur la configuration utilisateur), dont
\begin{itemize}
\item
\ex{simple} : seule la branche courante est concernée\\
(par défaut, conseillé en général)
\item
\ex{matching} : toutes les branches locales sont concernées
% si elles existent sur le serveur
\end{itemize}
\end{itemize}
\begin{codebox}
\mygit{git push}{gitpush.txt}
\end{codebox}
}
%======================================================================
\subsection{Exemples de travail collaboratif}
%======================================================================
......@@ -193,18 +278,3 @@
\mygitprompt{bob}{git push}{gitpushconf.txt}
}
%======================================================================
\subsection{Configuration}
%======================================================================
\frame{\frametitle{SSH ?}
\framesubtitle{Du côté de chez Bob...}
\mygitpromptplus{bob}{git add README}\\
\mygitprompt{bob}{git commit -m "Conflict fixed"}{gitconffix.txt}
\mygitprompt{bob}{git push}{gitpushconf.txt}
}
%======================================================================
......@@ -64,6 +64,7 @@
\include{config}
\section{Travail collaboratif avec Git}
\include{collabowork}
\include{ssh}
\include{moregit}
% 2 points importants d'évolutions : introduire les hunks et git
......
......@@ -522,74 +522,6 @@
%======================================================================
\frame{\frametitle{\ex{git pull}}
\framesubtitle{\gitsync}
\begin{itemize}
\item
Récupère les changements du dépôt distant et les fusionne dans le
dépôt local et le répertoire de travail
\item
Peut d'ailleurs être utilisé pour récupérer des changements de
n'importe quel dépôt distant...
\item
À utiliser avant de propager les changements du dépôt local vers
le dépôt distant (\ex{git push}) s'il y eu des changements sur le
dépôt distant
\item
L'option \ex{-{}-rebase} permet d'effectuer une fusion sans
provoquer l'ajout d'un nouveau commit formalisant cette fusion
\end{itemize}
}
%======================================================================
% À propos de 'git pull' : par défaut, cette commande effectue un fetch,
% suivi d'un merge. L'effet de bord le plus notable est que le pull
% conduit à un nouveau commit si le dépôt local contient des
% modifications non poussées (et non poussables si le pull est
% nécessaire).
% Une manière d'éviter ce nouveau commit est de passer par un
% 'git pull --rebase' à la place du simple 'git pull'. Dans ce cas, un
% fetch sera aussi effectué, et un rebase « intelligent » par la
% suite. À noter, comme rebase effectue une modification de l'historique
% (ce qui n'est jamais bon dès qu'on dépasse le stade local), ce genre
% de manipulations ne doit pas être effectué dans certaines
% configurations. Il semble que les architectures à base d'un unique
% dépôt central ne soit pas concernée, mais ce n'est pas le cas des
% architectures où plusieurs dépôt distants sont utilisés. Dans ce cas,
% cette variante à base de 'rebase' est à proscrire.
% Des détails en particulier sur :
% http://stackoverflow.com/questions/6284887/whats-the-difference-between-git-fetch-then-git-rebase-and-git-pull-reb/11531502#11531502
%======================================================================
\frame{\frametitle{\ex{git push}}
\framesubtitle{\gitsync}
\begin{itemize}
\item
Propage les changements du dépôt local vers le distant
\item
Précision : plusieurs stratégies de mises à jour existent (voir le
transparent sur la configuration utilisateur), dont
\begin{itemize}
\item
\ex{simple} : seule la branche courante est concernée\\
(par défaut, conseillé en général)
\item
\ex{matching} : toutes les branches locales sont concernées
% si elles existent sur le serveur
\end{itemize}
\end{itemize}
\begin{codebox}
\mygit{git push}{gitpush.txt}
\end{codebox}
}
%======================================================================
\frame{\frametitle{Récapitulatif des commandes fréquentes}
\begin{itemize}
\item
......@@ -628,12 +560,12 @@
\ex{git mv} : déplace des fichiers
\item
\ex{git rm} : supprime des fichiers
\item
\ex{git pull} : répercute les changements du dépôt distant vers le
dépôt local
\item
\ex{git push} : répercute les changements du dépôt local vers le
dépôt distant
% \item
% \ex{git pull} : répercute les changements du dépôt distant vers le
% dépôt local
% \item
% \ex{git push} : répercute les changements du dépôt local vers le
% dépôt distant
\end{itemize}
}
%======================================================================
% %======================================================================
\section{Aspects techniques}
% \section{Aspects techniques}
%======================================================================
% %======================================================================
\subsection{Authentification SSH}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment