Formation git
This commit is contained in:
parent
dbd84ec3a0
commit
232473472a
@ -1,4 +1,5 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
fichier content/outils/scm/git/commandes.tex à éditer
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
@ -1,4 +1,14 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{add}
|
||||
\begin{description}
|
||||
\item[\commande{git add}] Ajouter le contenu d'un fichier à l'index.
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_add}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{-u}] ajout des modifications des fichiers déjà connus de git
|
||||
\item[\commande{-i}] ajout interactif
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,7 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{blame}
|
||||
\begin{description}
|
||||
\item[\commande{git blame}] Afficher l'auteur et la référence de la dernière modification pour chaque ligne d'un fichier
|
||||
\end{description}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,14 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{branch}
|
||||
\begin{description}
|
||||
\item[git branch] Gérer les branches
|
||||
\end{description}
|
||||
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{--list}] Lister les branches (\commande{-a} les branches locales et distantes, \commande{-r} les branches distantes uniquement)
|
||||
\item[\commande{-d}] Supprimer une branche
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,14 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{checkout}
|
||||
\begin{description}
|
||||
\item[\commande{git checkout}] Synchroniser le répertoire de travail avec une version
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_checkout}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{-b}] Créer une nouvelle branche et déplacer HEAD dessus
|
||||
\item[\commande{--ours --theirs}] Conserver des modifications explicitement
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,13 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{cherry-pick}
|
||||
\begin{description}
|
||||
\item[\commande{git cherry-pick}] Appliquer les changements introduits dans un commit donné
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_cherry-pick}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{--abort}] Interrompre le processus
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,7 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{cherry}
|
||||
\begin{description}
|
||||
\item[\commande{git cherry}] Trouver les commit qui ne sont pas encore appliqués dans le dépôt distant
|
||||
\end{description}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,14 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{clean}
|
||||
\begin{description}
|
||||
\item[\commande{git clean}] Supprime les fichiers non suivis du répertoire de travail
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_clean}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{-xdf}] Combinaison pour supprimer du répertoire de travail les dossiers et fichiers non suivis
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,8 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{clone}
|
||||
\begin{description}
|
||||
\item[\commande{git clone <url du dépôt>}] Récupérer un dépôt git depuis une source distante
|
||||
\end{description}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,15 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{commit}
|
||||
\begin{description}
|
||||
\item[\commande{git commit}] Créer un commit à partir du contenu de l'index
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_commit}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{-a}] Court-circuiter l'index en intégrant au commit les modifications des fichiers suivis dans le répertoire de travail
|
||||
\item[\commande{--amend}] Modifier le dernier commit
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,8 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{diff}
|
||||
\begin{description}
|
||||
\item[\commande{git diff}] Afficher la différence entre deux états (entre le répertoire de travail ou l'index et la branche ou entre
|
||||
\end{description}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,13 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{checkout}
|
||||
\begin{description}
|
||||
\item[git fetch] Mettre à jour la copie locale d'un dépôt distant
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_fetch}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[-all] Mettre à jour les copies locales de tous les dépôts distants configurés
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,8 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{init}
|
||||
\begin{description}
|
||||
\item[\commande{git init}] Convertir le dossier courant en dépôt git
|
||||
\end{description}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,8 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{log}
|
||||
\begin{description}
|
||||
\item[\commande{git log}] Afficher une liste de commits
|
||||
\end{description}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,14 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{merge}
|
||||
\begin{description}
|
||||
\item[\commande{git merge}] Intégrer les commits d'une branche à une autre
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_merge}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{--abort}] Pour faire machine arrière lors d'un merge manuel
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,14 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{pull}
|
||||
\begin{description}
|
||||
\item[\commande{git pull}] Synchroniser une branche locale avec la branche distante
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_pull}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{--rebase}] Choisir la stratégie rebase pour incorporer les changements (équivalent à la succession des commandes \commande{fetch} et \commande{rebase}
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,15 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{push}
|
||||
\begin{description}
|
||||
\item[\commande{git push}] Synchroniser une branche distante avec une branche locale
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_push}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{--tags}] Pousser les tags locaux sur le dépôt distant
|
||||
\item[\commande{--all}] Pousser toutes les branches
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,14 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{rebase}
|
||||
\begin{description}
|
||||
\item[\commande{git rebase}] Rejouer les modifications après mise à jour de la branche
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_rebase}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{-i}] Réordonner les modifications manuellement
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,14 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{reset}
|
||||
\begin{description}
|
||||
\item[\commande{git reset}] Revenir à une version antérieure
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_reset}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{--hard}] Écraser le contenu du répertoire de travail et de l'index
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,14 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{revert}
|
||||
\begin{description}
|
||||
\item[\commande{git revert}] Créer le commit annulant un autre commit
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_commande_revert}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{--abort}] Interrompre le traitement
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,8 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{show}
|
||||
\begin{description}
|
||||
\item[\commande{git show}] Afficher la description d'un commit
|
||||
\end{description}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,8 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{status}
|
||||
\begin{description}
|
||||
\item[\commande{git status}] Afficher le statut du répertoire de travail, et de l'index relativement à la branche
|
||||
\end{description}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,15 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Commandes git}
|
||||
\framesubtitle{tag}
|
||||
\begin{description}
|
||||
\item[\commande{git tag}] Gérer les étiquettes attachées à un commit
|
||||
\end{description}
|
||||
\begin{exampleblock}{Options à retenir}
|
||||
\begin{description}
|
||||
\item[\commande{-l}] Lister les étiquettes (éventuellement correpondant à un motif)
|
||||
\item[\commande{-a}] Annoter l'étiquette
|
||||
\item[\commande{-s}] Signer l'étiquette
|
||||
\end{description}
|
||||
\end{exampleblock}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
@ -0,0 +1,33 @@
|
||||
\begin{frame}
|
||||
\frametitle{Ergonomie}
|
||||
\framesubtitle{alias}
|
||||
Les alias sont des raccourcis gérés pas git.
|
||||
|
||||
\commande{git config alias.<nom de l'alias> "<commande>"}
|
||||
|
||||
\begin{exampleblock}{Nature des commandes}
|
||||
Les commandes peuvent aussi bien être des options et sous-commandes de git que des commandes externes accessibles au shell.
|
||||
\end{exampleblock}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle {Ergonomie}
|
||||
\framesubtitle{Exemples d'alias}
|
||||
\begin{minted}[fontsize=\tiny]{ini}
|
||||
[alias]
|
||||
co = checkout
|
||||
st = status
|
||||
fe = fetch
|
||||
lo = log --oneline
|
||||
re = reset --hard HEAD~1
|
||||
br = branch
|
||||
mnf = merge --no-ff
|
||||
sw = checkout @{-1}
|
||||
lu = log ..@{upstream}
|
||||
luo = log --oneline ..@{upstream}
|
||||
ul=log @{upstream}..HEAD
|
||||
ulo=log --oneline @{upstream}..HEAD
|
||||
cslt = !git describe --long --first-parent | awk -F'/' '{print $NF}' | awk -F'-' '{print $(NF-1)}'
|
||||
clf = !git lo --no-merges $(git lo -1 --pretty=format:"%h" debian/changelog)..
|
||||
\end{minted}
|
||||
\end{frame}
|
@ -1,4 +1,10 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Ergonomie}
|
||||
\framesubtitle{Interface}
|
||||
\begin{itemize}
|
||||
\item \commande{git config --global core.editor "vim"}
|
||||
\item \commande{git config --global core.pager "less"}
|
||||
\item \commande{git config --global color.ui auto}
|
||||
\end{itemize}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
|
47
content/outils/scm/git/configuration/hooks.tex
Normal file
47
content/outils/scm/git/configuration/hooks.tex
Normal file
@ -0,0 +1,47 @@
|
||||
\begin{frame}
|
||||
\frametitle{Ergonomie}
|
||||
\framesubtitle{Hooks}
|
||||
Les hooks sont des actions déclenchées par des évènements concernant le dépôt git.
|
||||
\begin{exampleblock}{}
|
||||
Les hooks sont des scripts exécutables (pas de langage imposé) posés dans le dossier .git/hooks.
|
||||
\end{exampleblock}
|
||||
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Ergonomie}
|
||||
\framesubtitle{Hooks pour le client}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item pre-commit
|
||||
\item prepare-commit-msg
|
||||
\item commit-msg
|
||||
\item post-commit
|
||||
|
||||
\item applypatch-msg
|
||||
\item preapply-patch
|
||||
\item postapply-patch
|
||||
\end{itemize}
|
||||
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item pre-rebase
|
||||
\item post-rewrite
|
||||
\item post-checkout
|
||||
\item post-merge
|
||||
\item pre-push
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Ergonomie}
|
||||
\framesubtitle{Hooks pour le serveur}
|
||||
\begin{itemize}
|
||||
\item pre-receive
|
||||
\item update
|
||||
\item post-receive
|
||||
\end{itemize}
|
||||
\end{frame}
|
16
content/outils/scm/git/configuration/shell.tex
Normal file
16
content/outils/scm/git/configuration/shell.tex
Normal file
@ -0,0 +1,16 @@
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Ergonomie}
|
||||
\framesubtitle{bash}
|
||||
\begin{minted}{bash}
|
||||
source ~/.git-prompt.sh
|
||||
GIT_PS1_SHOWDIRTYSTATE=1
|
||||
GIT_PS1_SHOWSTASHSTATE=1
|
||||
GIT_PS1_SHOWUNTRACKEDFILES=1
|
||||
GIT_PS1_SHOWUPSTREAM="auto"
|
||||
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
|
||||
\end{minted}
|
||||
\begin{exampleblock}{git-prompt}
|
||||
git-prompt.sh est un script définissant la fonction \_\_git\_ps1 permettant d'afficher des informations pertinentes sur l'état du dépôt git dans l'invite de commande.
|
||||
\end{exampleblock}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
@ -3,7 +3,7 @@
|
||||
\framesubtitle{Identifier l'utilisateur}
|
||||
git associe à chaque commit des informations sur la personne ayant commité et sur la personne ayant mergé le commit.
|
||||
\begin{itemize}
|
||||
\item git config --global user.name "<nom d'utilisateur>"
|
||||
\item git config --global user.email "<courriel>"
|
||||
\item \commande{git config --global user.name "<nom d'utilisateur>"}
|
||||
\item \commande{git config --global user.email "<courriel>"}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
@ -1,8 +1,10 @@
|
||||
\begin{frame}
|
||||
\frametitle{exercice}
|
||||
\frametitle{Exercices}
|
||||
\framesubtitle{Configuration globale de git}
|
||||
Les paramètres de l'application git peuvent être globaux où propres à un dépôt.
|
||||
Les paramètres de l'application git peuvent être globaux ou propres à un dépôt.
|
||||
|
||||
L'ergonomie, l'identité, les alias sont souvent les mêmes pour tous les dépôts.
|
||||
La première étape consiste généralement à renseigner ces paramètres.
|
||||
|
||||
Le premier exercice consiste donc à renseigner un minimum de ces variables globales.
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,38 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Mise en place}
|
||||
\framesubtitle{Identité de l'utilisateur}
|
||||
\begin{itemize}
|
||||
\item \commande{git config --global user.name "<nom de l'utilisateur>"}
|
||||
\item \commande{git config --global user.email "<courriel de l'utilisateur>"}
|
||||
\end{itemize}
|
||||
\begin{exampleblock}{En cas d'oubli}
|
||||
\commande{git} émet un avertissement lors du premier commit si ces variables ne sont pas renseignées.
|
||||
Il est possible de corriger cet oubli facilement si les commits n'ont pas encore été partagés.
|
||||
\end{exampleblock}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Mise en place}
|
||||
\framesubtitle{Ergonomie}
|
||||
\begin{itemize}
|
||||
\item \commande{git config --global color.ui auto}
|
||||
\item \commande{git config --global core.editor "<éditeur de texte à utiliser>"}
|
||||
\item \commande{git config --global core.pager "<pager>"}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Mise en place}
|
||||
\framesubtitle{Ergonomie (GNU/Linux)}
|
||||
\begin{minted}{bash}
|
||||
source ~/.git-prompt.sh
|
||||
GIT_PS1_SHOWDIRTYSTATE=1
|
||||
GIT_PS1_SHOWSTASHSTATE=1
|
||||
GIT_PS1_SHOWUNTRACKEDFILES=1
|
||||
GIT_PS1_SHOWUPSTREAM="auto"
|
||||
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
|
||||
\end{minted}
|
||||
\begin{exampleblock}{git-prompt}
|
||||
git-prompt.sh est un script définissant la fonction \_\_git\_ps1 permettant d'afficher des informations pertinentes sur l'état du dépôt git dans l'invite de commande.
|
||||
\end{exampleblock}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,13 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Exercices}
|
||||
\framesubtitle{Initialiser un dépôt}
|
||||
Un dépôt git peut être amorcé de différentes façons selon le contexte.
|
||||
\begin{itemize}
|
||||
\item le dépôt existe déjà en \emph{distant} :
|
||||
\begin{itemize}
|
||||
\item le dépôt distant est déjà au format git ;
|
||||
\item le dépôt distant est géré par un autre scm ;
|
||||
\end{itemize}
|
||||
\item un répertoire local doit être converti en dépôt git ;
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,21 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\frametitle{Initialiser le dépôt}
|
||||
\framesubtitle{Récupérer le dépôt git distant en ssh}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Initialiser le dépôt}
|
||||
\framesubtitle{Récupérer le dépôt git distant en https}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\begin{frame}
|
||||
\frametitle{Initialiser le dépôt}
|
||||
\framesubtitle{Récupérer le dépôt CVS distant}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Initialiser le dépôt}
|
||||
\framesubtitle{Convertir le dossier local en dépôt git}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,9 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Exercice}
|
||||
\framesubtitle{Avoir des dépôts distants en référence}
|
||||
Les dépôts distants sont un aspect important du fonctionnement d'un SCM décentralisé.
|
||||
|
||||
git permet d'associer plusieurs dépôts distants à un dépôt local et de renseigner à quelle branche de quel dépôt distant une branche locale doit se référer.
|
||||
|
||||
Le présent exercice aborde la mise en place de tels liens entre branches locales et branches distantes.
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,31 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Associer les dépôts distants}
|
||||
\framesubtitle{Ajouter un dépôt distant}
|
||||
\commande{git remote add <nom> <protocole>://[<utilisateur>@]<adresse>[:port]/<chemin>}
|
||||
|
||||
Exemples :
|
||||
\begin{itemize}
|
||||
\item \commande{git remote add formation ssh://gogs@localhost/bbohard.git}
|
||||
\item \commande{git remote add formation https://gogs@localhost/bbohard.git}
|
||||
\end{itemize}
|
||||
\begin{exampleblock}{Vérification}
|
||||
Les dépôts distants configurés peuvent être listés avec :
|
||||
\begin{itemize}
|
||||
\item \commande{git remote} pour la version sobre ou
|
||||
\item \commande{git remote -v} pour plus de détails.
|
||||
\end{itemize}
|
||||
\end{exampleblock}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Associer les dépôts distants}
|
||||
\framesubtitle{Observer une branche distante}
|
||||
Pour une branche distante existante :
|
||||
\begin{itemize}
|
||||
\item \commande{git branch --set-upstream-to=<nom\_dépôt\_distant>/<branche\_distante>}
|
||||
\end{itemize}
|
||||
Pour une branche distante inexistante :
|
||||
\begin{itemize}
|
||||
\item \commande{git push --set-upstream <nom\_dépôt\_distant> <branche\_locale>}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,7 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Exercice}
|
||||
\framesubtitle{Premier commit}
|
||||
Le premier commit est toujours le plus facile. Pas de conflit à attendre, pas stress…
|
||||
|
||||
Cet exercice permet de décortiquer le fonctionnement des \emph{arbres} de git avec l'ajout d'un simple fichier dans un dossier.
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,133 @@
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Premier pas}
|
||||
\framesubtitle{Dépôt vide}
|
||||
Au démarrage, est un dépôt vide :
|
||||
|
||||
\begin{minted}[fontsize=\tiny]{bash}
|
||||
Sur la branche master
|
||||
|
||||
Validation initiale
|
||||
|
||||
rien à valider (créez/copiez des fichiers et utilisez "git add" pour les suivre)
|
||||
\end{minted}
|
||||
\end{frame}
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Premier pas}
|
||||
\framesubtitle{Et pourtant…}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
L'initialisation consiste en la création du dossier .git :
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\begin{minted}[fontsize=\tiny]{bash}
|
||||
.
|
||||
└── .git
|
||||
├── branches
|
||||
├── config
|
||||
├── description
|
||||
├── HEAD
|
||||
├── hooks
|
||||
│ ├── applypatch-msg.sample
|
||||
│ ├── commit-msg.sample
|
||||
│ ├── post-update.sample
|
||||
│ ├── pre-applypatch.sample
|
||||
│ ├── pre-commit.sample
|
||||
│ ├── prepare-commit-msg.sample
|
||||
│ ├── pre-push.sample
|
||||
│ ├── pre-rebase.sample
|
||||
│ └── update.sample
|
||||
├── info
|
||||
│ └── exclude
|
||||
├── objects
|
||||
│ ├── info
|
||||
│ └── pack
|
||||
└── refs
|
||||
├── heads
|
||||
└── tags
|
||||
\end{minted}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Premier pas}
|
||||
\framesubtitle{Création d'un dossier}
|
||||
\commande{mkdir doc}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Premier pas}
|
||||
\framesubtitle{Création d'un dossier}
|
||||
\commande{git status}
|
||||
\begin{minted}[fontsize=\tiny]{bash}
|
||||
Sur la branche master
|
||||
|
||||
Validation initiale
|
||||
|
||||
rien à valider (créez/copiez des fichiers et utilisez "git add" pour les suivre)
|
||||
\end{minted}
|
||||
\begin{exampleblock}{}
|
||||
git ne prend en considération que le contenu des fichiers.
|
||||
\end{exampleblock}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Premier pas}
|
||||
\framesubtitle{Création d'un fichier}
|
||||
\commande{touch doc/README}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Premier pas}
|
||||
\framesubtitle{Création d'un fichier}
|
||||
\commande{git status}
|
||||
\begin{minted}[fontsize=\tiny]{bash}
|
||||
Sur la branche master
|
||||
|
||||
Validation initiale
|
||||
|
||||
Fichiers non suivis:
|
||||
(utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)
|
||||
|
||||
doc/
|
||||
|
||||
aucune modification ajoutée à la validation mais des fichiers non suivis sont présents
|
||||
(utilisez "git add" pour les suivre)
|
||||
\end{minted}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Premier pas}
|
||||
\framesubtitle{Création d'un fichier}
|
||||
\commande{git add .}
|
||||
\skbinput[from=fig]{apps/git_trees}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Premier pas}
|
||||
\framesubtitle{Création d'un fichier}
|
||||
\commande{git status}
|
||||
\begin{minted}[fontsize=\tiny]{bash}
|
||||
Sur la branche master
|
||||
|
||||
Validation initiale
|
||||
|
||||
Modifications qui seront validées :
|
||||
(utilisez "git rm --cached <fichier>..." pour désindexer)
|
||||
|
||||
nouveau fichier : doc/README
|
||||
|
||||
\end{minted}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\commande{git commit -m "Ajout du premier fichier."}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\commande{git status}
|
||||
\begin{minted}[fontsize=\tiny]{bash}
|
||||
Sur la branche master
|
||||
rien à valider, la copie de travail est propre
|
||||
\end{minted}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,65 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\begin{tikzpicture}
|
||||
% Commit DAG
|
||||
\gitDAG[grow right sep = 2em]{
|
||||
A -- B -- {
|
||||
C,
|
||||
D -- E,
|
||||
}
|
||||
};
|
||||
% Tag reference
|
||||
\gittag
|
||||
[v0p1] % node name
|
||||
{v0.1} % node text
|
||||
{above=of A} % node placement
|
||||
{A} % target
|
||||
% Remote branch
|
||||
\gitremotebranch
|
||||
[origmaster] % node name
|
||||
{origin/master} % node text
|
||||
{above=of C} % node placement
|
||||
{C} % target
|
||||
% Branch
|
||||
\gitbranch
|
||||
{master} % node name and text
|
||||
{above=of E} % node placement
|
||||
{E} % target
|
||||
% HEAD reference
|
||||
\gitHEAD
|
||||
{above=of master} % node placement
|
||||
{master} % target
|
||||
\end{tikzpicture}
|
||||
\begin{tikzpicture}
|
||||
\gitDAG[grow right sep = 2em]{
|
||||
A -- B -- {
|
||||
C -- D' -- E',
|
||||
{[nodes=unreachable] D -- E },
|
||||
}
|
||||
};
|
||||
% Tag reference
|
||||
\gittag
|
||||
[v0p1] % node name
|
||||
{v0.1} % node text
|
||||
{above=of A} % node placement
|
||||
{A} % target
|
||||
% Remote branch
|
||||
\gitremotebranch
|
||||
[origmaster] % node name
|
||||
{origin/master} % node text
|
||||
{above=of C} % node placement
|
||||
{C} % target
|
||||
% Branch
|
||||
\gitbranch
|
||||
{master} % node name and text
|
||||
{above=of E'} % node placement
|
||||
{E'} % target
|
||||
% HEAD reference
|
||||
\gitHEAD
|
||||
{above=of master} % node placement
|
||||
{master} % target
|
||||
\SAandWT
|
||||
\end{tikzpicture}
|
||||
\end{frame}
|
||||
|
@ -2,6 +2,7 @@
|
||||
\frametitle{Git en un mot}
|
||||
\begin{itemize}
|
||||
\item projet créé en 2005
|
||||
\item sous licence GPLv2
|
||||
\item gère le code source du noyau linux
|
||||
\item est multiplateforme
|
||||
\end{itemize}
|
||||
|
@ -0,0 +1,8 @@
|
||||
\begin{frame}
|
||||
\frametitle{Références}
|
||||
\begin{itemize}
|
||||
\item \url{http://www.git-scm.com/docs}
|
||||
\item Pro-git, S. Chacon et B. Straub, Apress, 2014
|
||||
\item les pages de man : gitcore-tutorial, gitworkflows, gitcvs-migration
|
||||
\end{itemize}
|
||||
\end{frame}
|
@ -1,4 +1,11 @@
|
||||
\begin{frame}
|
||||
\frametitle{Ce que sont les données pour git}
|
||||
Un état du répertoire = un instantané de l'état des fichiers
|
||||
\frametitle{Ce que cache le dépôt git}
|
||||
\begin{description}[répertoire de travail]
|
||||
\item[.git]<1-> Les objets et la configuration locale du dépôt git
|
||||
\item[répertoire de travail]<2-> Une arborescence de fichiers accessible à l'édition, le bac à sable
|
||||
\item[index]<3-> Les changements candidats à l'archivage
|
||||
\item[HEAD]<4-> Le dernier état archivé
|
||||
\item[stash]<5-> Une zone tampon pour les modifications à mettre momentanément de côté
|
||||
\end{description}
|
||||
\skbinput[from=fig]{apps/git_trees}
|
||||
\end{frame}
|
||||
|
5
content/outils/scm/git/web/basicssh.tex
Normal file
5
content/outils/scm/git/web/basicssh.tex
Normal file
@ -0,0 +1,5 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
fichier content/outils/scm/git/web/basicssh.tex à éditer
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
@ -1,4 +1,9 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Serveur de dépôts git}
|
||||
\framesubtitle{GitLab}
|
||||
Application combinant un serveur de dépôts git avec une interface web conviviale.
|
||||
\begin{itemize}
|
||||
\item Ruby
|
||||
\item
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
5
content/outils/scm/git/web/gitolite.tex
Normal file
5
content/outils/scm/git/web/gitolite.tex
Normal file
@ -0,0 +1,5 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
fichier content/outils/scm/git/web/gitolite.tex à éditer
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
@ -1,4 +1,8 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Des branches pour étayer le tronc}
|
||||
\begin{itemize}
|
||||
\item maintenir l'histoire du code lisible
|
||||
\item faciliter les divergences
|
||||
\item éphémères ou pérennes
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
@ -1,4 +1,15 @@
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
% contenu (pas trop long) de la diapositive
|
||||
\end{frame}
|
||||
\frametitle{Processus de Vincent Driessen}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item Des branches \emph{master} et \emph{develop} pour le code fonctionnel
|
||||
\item Des branches pour les développements en cours
|
||||
\item Un circuit entre les branches bien fléché
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\skbfigure[center, figure, caption=Vincent Driessen CC-by-sa, height=0.5\textheight]{scm/git-model@2x.png}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
60
figures/apps/git_commande_add.tex
Normal file
60
figures/apps/git_commande_add.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(155,37.5) node[white] {add}
|
||||
(130,37.5)
|
||||
-- (125,32)
|
||||
-- (180,32)
|
||||
-- (185,37.5)
|
||||
-- (180,43)
|
||||
-- (125,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_checkout.tex
Normal file
60
figures/apps/git_commande_checkout.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_cherry-pick.tex
Normal file
60
figures/apps/git_commande_cherry-pick.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_clean.tex
Normal file
60
figures/apps/git_commande_clean.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_commit.tex
Normal file
60
figures/apps/git_commande_commit.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_fetch.tex
Normal file
60
figures/apps/git_commande_fetch.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_merge.tex
Normal file
60
figures/apps/git_commande_merge.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_pull.tex
Normal file
60
figures/apps/git_commande_pull.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_push.tex
Normal file
60
figures/apps/git_commande_push.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_rebase.tex
Normal file
60
figures/apps/git_commande_rebase.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_reset.tex
Normal file
60
figures/apps/git_commande_reset.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
60
figures/apps/git_commande_revert.tex
Normal file
60
figures/apps/git_commande_revert.tex
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
\path[color=black,draw=black,fill=black]
|
||||
(185,37.5) node[white] {checkout}
|
||||
(240,37.5) % creux
|
||||
-- (245,32)
|
||||
-- (130,32)
|
||||
-- (125,37.5)
|
||||
-- (130,43)
|
||||
-- (245,43)
|
||||
-- cycle;
|
||||
|
||||
\end{tikzpicture}
|
275
figures/apps/git_trees.svg
Normal file
275
figures/apps/git_trees.svg
Normal file
@ -0,0 +1,275 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="210mm"
|
||||
height="148mm"
|
||||
viewBox="0 0 744.09449 524.40944"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="git_trees.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:cx="424.83981"
|
||||
inkscape:cy="567.51317"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1678"
|
||||
inkscape:window-height="1029"
|
||||
inkscape:window-x="-1"
|
||||
inkscape:window-y="18"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-527.95276)">
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#f8f99c;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="rect4136"
|
||||
width="90.913727"
|
||||
height="146.47212"
|
||||
x="85.862968"
|
||||
y="585.67169"
|
||||
ry="12.8571" />
|
||||
<rect
|
||||
ry="12.8571"
|
||||
y="585.67169"
|
||||
x="214.54002"
|
||||
height="146.47212"
|
||||
width="90.913727"
|
||||
id="rect4138"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#15de67;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#13cecc;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="rect4140"
|
||||
width="90.913727"
|
||||
height="146.47212"
|
||||
x="333.21707"
|
||||
y="585.67169"
|
||||
ry="12.8571" />
|
||||
<rect
|
||||
ry="12.8571"
|
||||
y="585.67169"
|
||||
x="451.8941"
|
||||
height="146.47212"
|
||||
width="90.913727"
|
||||
id="rect4142"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#1da2e8;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="470.04443"
|
||||
y="608.11481"
|
||||
id="text4188"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4190"
|
||||
x="470.04443"
|
||||
y="608.11481"
|
||||
style="font-size:22.5px">HEAD</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="344.35815"
|
||||
y="607.82916"
|
||||
id="text4192"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4194"
|
||||
x="344.35815"
|
||||
y="607.82916">Index</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="247.07147"
|
||||
y="608.11481"
|
||||
id="text4196"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4198"
|
||||
x="247.07147"
|
||||
y="608.11481">WD</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="104.1836"
|
||||
y="607.89508"
|
||||
id="text4200"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4202"
|
||||
x="104.1836"
|
||||
y="607.89508">Pile</tspan></text>
|
||||
<g
|
||||
id="g4208">
|
||||
<g
|
||||
transform="translate(5.0507627,18.182746)"
|
||||
id="g4162">
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ded0d4;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="rect4160"
|
||||
width="90.913757"
|
||||
height="41.416241"
|
||||
x="611.17773"
|
||||
y="655.70721"
|
||||
ry="12.8571" />
|
||||
<rect
|
||||
ry="12.8571"
|
||||
y="632.0321"
|
||||
x="600.06604"
|
||||
height="41.416241"
|
||||
width="90.913757"
|
||||
id="rect4158"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#d997af;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#dc628f;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="rect4156"
|
||||
width="90.913757"
|
||||
height="41.416241"
|
||||
x="589.96448"
|
||||
y="609.36713"
|
||||
ry="12.8571" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#138cce;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="rect4144"
|
||||
width="90.913757"
|
||||
height="41.416241"
|
||||
x="579.86298"
|
||||
y="585.67169"
|
||||
ry="12.8571" />
|
||||
<rect
|
||||
ry="12.8571"
|
||||
y="585.67169"
|
||||
x="579.86298"
|
||||
height="41.416241"
|
||||
width="90.913757"
|
||||
id="rect4146"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#e51460;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
</g>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4204"
|
||||
y="630.11841"
|
||||
x="589.90875"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="630.11841"
|
||||
x="589.90875"
|
||||
id="tspan4206"
|
||||
sodipodi:role="line">Remote</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.52744067;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
d="m 262.50339,648.16486 95.17946,0 20.04742,11.24796 -20.04742,11.24797 -95.17946,0 20.04742,-11.24797 z"
|
||||
id="rect4218"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="303.04578"
|
||||
y="664.46362"
|
||||
id="text4221"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4223"
|
||||
x="303.04578"
|
||||
y="664.46362">add</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="204.05081"
|
||||
y="296.7681"
|
||||
id="text4225"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4227"
|
||||
x="204.05081"
|
||||
y="296.7681">*</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="304.05591"
|
||||
y="303.83914"
|
||||
id="text4229"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4231"
|
||||
x="304.05591"
|
||||
y="303.83914">+</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="405.07117"
|
||||
y="358.38739"
|
||||
id="text4233"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4235"
|
||||
x="405.07117"
|
||||
y="358.38739"><</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="539.42145"
|
||||
y="370.50922"
|
||||
id="text4237"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4239"
|
||||
x="539.42145"
|
||||
y="370.50922">></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="262.63965"
|
||||
y="434.14883"
|
||||
id="text4241"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4243"
|
||||
x="262.63965"
|
||||
y="434.14883">=</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:125%;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="398.00009"
|
||||
y="462.43311"
|
||||
id="text4245"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4247"
|
||||
x="398.00009"
|
||||
y="462.43311">%</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
51
figures/apps/git_trees.tex
Normal file
51
figures/apps/git_trees.tex
Normal file
@ -0,0 +1,51 @@
|
||||
|
||||
\definecolor{stashcolor}{RGB}{248,249,156}
|
||||
\definecolor{wdcolor}{RGB}{21,222,103}
|
||||
\definecolor{indexcolor}{RGB}{19,206,204}
|
||||
\definecolor{headcolor}{RGB}{29,162,232}
|
||||
\definecolor{remote1color}{RGB}{222,208,212}
|
||||
\definecolor{remote2color}{RGB}{217,151,175}
|
||||
\definecolor{remote3color}{RGB}{220,98,143}
|
||||
\definecolor{remote4color}{RGB}{229,20,96}
|
||||
|
||||
|
||||
\begin{tikzpicture}[y=1pt, x=1pt, yscale=-0.500000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
|
||||
\path<5->[color=black,draw=black,fill=stashcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(65,0) node[below=3pt] {Stash}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path<2->[color=black,draw=black,fill=wdcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(125,0) node[below=3pt] {WD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path<3->[color=black,draw=black,fill=indexcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(185,0) node[below=3pt] {Index}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path<4->[color=black,draw=black,fill=headcolor,line join=round,line cap=round,miter
|
||||
limit=4.00,line width=1.440pt,rounded corners=0.2000cm]
|
||||
(245,0) node[below=3pt] {HEAD}
|
||||
-- ++(25,0)
|
||||
-- ++(0,75)
|
||||
-- ++(-50,0)
|
||||
-- ++(0,-75)
|
||||
--cycle;
|
||||
\path<6>
|
||||
(325,50) node[anchor=base,fill=remote1color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote2color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote3color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {}
|
||||
++(-5,-10) node[anchor=base,fill=remote4color,shape=rectangle,draw,minimum width=50pt,minimum height=20pt,rounded corners=0.2cm] {Remote};
|
||||
|
||||
\end{tikzpicture}
|
BIN
figures/cadoles/gray_frame_background.png
Normal file
BIN
figures/cadoles/gray_frame_background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 47 KiB |
168
figures/cadoles/gray_frame_header.svg
Normal file
168
figures/cadoles/gray_frame_header.svg
Normal file
@ -0,0 +1,168 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="210mm"
|
||||
height="148mm"
|
||||
viewBox="0 0 744.09449 524.40944"
|
||||
id="svg4530"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="gray_frame_header.svg"
|
||||
inkscape:export-filename="/home/bbohard/Cadoles/git/formations/figures/cadoles/gray_frame_background.png"
|
||||
inkscape:export-xdpi="300"
|
||||
inkscape:export-ydpi="300">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="357.17515"
|
||||
inkscape:cy="260.00836"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:snap-page="true"
|
||||
inkscape:object-paths="true"
|
||||
inkscape:snap-global="true"
|
||||
inkscape:window-width="1918"
|
||||
inkscape:window-height="1059"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="19"
|
||||
inkscape:window-maximized="1"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:bbox-nodes="false"
|
||||
inkscape:bbox-paths="false"
|
||||
inkscape:snap-bbox-edge-midpoints="false"
|
||||
inkscape:snap-bbox-midpoints="false"
|
||||
inkscape:snap-intersection-paths="true"
|
||||
inkscape:object-nodes="true"
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:snap-midpoints="false"
|
||||
inkscape:snap-object-midpoints="false"
|
||||
inkscape:snap-center="false"
|
||||
inkscape:snap-text-baseline="false">
|
||||
<sodipodi:guide
|
||||
position="744.0945,518.39287"
|
||||
orientation="1,0"
|
||||
id="guide4156" />
|
||||
<sodipodi:guide
|
||||
position="744.0945,524.40946"
|
||||
orientation="0,1"
|
||||
id="guide4158" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs4532" />
|
||||
<metadata
|
||||
id="metadata4535">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-527.95276)">
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#a3a3a3;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
d="M 0,4.9907735e-6 0,63.558594 c 0,7.55493 6.0818547,13.668435 13.636719,13.636716 l 476.363281,0 0,16.29102 c 0,7.55496 6.08177,13.63672 13.63672,13.63672 l 99.86914,0 c 7.55495,0 13.63672,-6.08176 13.63672,-13.63672 l 0,-16.29102 113.31445,0 c 7.55493,0 13.63663,-6.081786 13.63672,-13.636716 L 744.09449,4.9907735e-6 Z"
|
||||
id="rect5078"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="csscsssscsscc"
|
||||
transform="translate(0,527.95276)" />
|
||||
<g
|
||||
transform="matrix(0.58550099,0,0,-0.58550099,611.06673,591.65217)"
|
||||
inkscape:label="ink_ext_XXXXXX"
|
||||
id="g5123">
|
||||
<g
|
||||
transform="scale(0.1,0.1)"
|
||||
id="g5125">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5127"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 1308.73,601.652 c -47.88,0 -83.54,-23.511 -83.54,-80.093 0,-42.633 23.5,-72.227 80.96,-72.227 48.7,0 81.78,28.695 81.78,73.988 0,51.328 -29.6,78.332 -79.2,78.332 z M 1213,202.133 c -11.33,-13.906 -22.62,-28.68 -22.62,-46.117 0,-34.786 44.36,-45.254 105.3,-45.254 50.48,0 119.24,3.535 119.24,50.468 0,27.895 -33.08,29.622 -74.88,32.243 l -127.04,8.66 z m 257.61,396.89 c 15.64,-20.023 32.2,-47.878 32.2,-87.91 0,-96.601 -75.72,-153.164 -185.35,-153.164 -27.88,0 -53.12,3.473 -68.77,7.817 l -28.73,-46.118 85.28,-5.21 c 150.58,-9.594 239.32,-13.954 239.32,-129.661 0,-100.109 -87.88,-156.652 -239.32,-156.652 -157.52,0 -217.57,40.0391 -217.57,108.781 0,39.18 17.41,60.02 47.87,88.782 -28.73,12.144 -38.29,33.89 -38.29,57.398 0,19.16 9.56,36.562 25.25,53.109 15.66,16.52 33.06,33.078 53.95,52.219 -42.64,20.883 -74.85,66.141 -74.85,130.555 0,100.074 66.15,168.804 199.28,168.804 37.43,0 60.07,-3.445 80.09,-8.699 l 169.72,0 0,-73.957 -80.08,-6.094" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5129"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 1703.8,757.168 c -49.62,0 -78.33,28.746 -78.33,78.371 0,49.563 28.71,76.563 78.33,76.563 50.48,0 79.2,-27 79.2,-76.563 0,-49.625 -28.72,-78.371 -79.2,-78.371 z m -112.29,-523.012 0,68.719 44.4,6.074 c 12.19,1.766 13.92,4.356 13.92,17.442 l 0,255.867 c 0,9.555 -2.6,15.672 -11.33,18.262 l -46.99,16.55 9.57,70.469 180.17,0 0,-361.148 c 0,-13.95 0.84,-15.676 13.93,-17.442 l 44.39,-6.074 0,-68.719 -248.06,0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5131"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 2183.73,267.895 c -37.44,-18.254 -92.26,-34.793 -141.89,-34.793 -103.56,0 -142.71,41.734 -142.71,140.121 l 0,228.004 c 0,5.211 0,8.707 -6.99,8.707 l -60.91,0 0,77.453 c 76.61,8.726 107.05,47.027 116.62,141.886 l 82.69,0 0,-123.625 c 0,-6.07 0,-8.699 6.97,-8.699 l 122.7,0 0,-87.015 -129.67,0 0,-207.989 c 0,-51.355 12.2,-71.355 59.17,-71.355 24.4,0 49.61,6.074 70.5,13.914 l 23.52,-76.609" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5133"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 894.215,496.285 -397.938,397.91 c -22.898,22.918 -60.066,22.918 -82.996,0 L 330.652,811.559 435.469,706.738 c 24.367,8.227 52.297,2.711 71.711,-16.707 19.515,-19.539 24.992,-47.707 16.558,-72.156 l 101.024,-101.02 c 24.441,8.422 52.64,2.981 72.156,-16.57 27.285,-27.277 27.285,-71.476 0,-98.762 -27.289,-27.293 -71.488,-27.293 -98.789,0 -20.516,20.532 -25.59,50.676 -15.199,75.954 l -94.215,94.218 -0.008,-247.929 c 6.652,-3.293 12.93,-7.688 18.473,-13.207 27.277,-27.274 27.277,-71.465 0,-98.782 -27.285,-27.273 -71.504,-27.273 -98.762,0 -27.281,27.317 -27.281,71.508 0,98.782 6.742,6.73 14.543,11.824 22.867,15.238 l 0,250.23 c -8.324,3.403 -16.113,8.461 -22.867,15.239 -20.664,20.648 -25.641,50.976 -15.043,76.351 L 290.051,770.961 17.1992,498.125 c -22.92576,-22.937 -22.92576,-60.105 0,-83.027 L 415.133,17.1875 c 22.91,-22.91797 60.066,-22.91797 83.008,0 L 894.215,413.254 c 22.918,22.93 22.918,60.109 0,83.031" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g5283"
|
||||
transform="matrix(0.22351209,0,0,0.22351209,468.02458,415.34098)">
|
||||
<path
|
||||
id="path5277"
|
||||
transform="translate(0,527.95276)"
|
||||
d="m 443.48633,349.84961 c -7.21008,0.0254 -11.95238,1.19421 -18.87891,4.65625 -15.15766,7.57615 -26.43306,25.28487 -28.49609,44.75391 l -0.39453,3.7207 3.03515,0 3.03321,0 0,12.14844 0,12.14648 3.09961,2.78516 c 1.70399,1.53203 4.31475,3.4023 5.80273,4.15625 3.98168,2.01748 12.07933,4.3896 18.18164,5.32617 7.21121,1.1068 22.98833,1.14627 30.05859,0.0742 10.40262,-1.57734 18.68591,-4.87016 23.5625,-9.36524 l 2.62891,-2.42187 0,-12.42578 0,-12.42383 3.06055,0 3.0625,0 -0.33789,-4.61328 c -0.40487,-5.54687 -2.69311,-13.71479 -5.53321,-19.75 l -2.08007,-4.42188 -3.25391,3.21094 -3.25195,3.21289 0.0176,8.05469 c 0.0165,8.00197 0.0279,8.07205 1.78516,10.39453 0.97303,1.286 1.76953,2.53487 1.76953,2.77344 0,0.23858 -1.35605,1.56919 -3.01367,2.95703 l -3.01367,2.52344 -2.64063,-2.5918 c -1.4525,-1.42552 -2.63048,-2.87182 -2.61718,-3.21289 0.0133,-0.34106 0.81631,-1.54817 1.78515,-2.68164 l 1.76172,-2.06055 0,-8.93945 0,-8.94141 4.28516,-3.91992 4.28515,-3.91992 -2.73828,-3.5586 c -4.41747,-5.74083 -3.77302,-5.78651 -9.92773,0.7168 l -5.42774,5.73633 0,7.72266 0,7.7207 1.89649,2.64258 1.89843,2.64257 -2.92578,2.96875 -2.92382,2.96875 -2.93164,-2.93359 -2.9336,-2.93164 1.87695,-2.36914 1.875,-2.36914 0,-8.78125 0,-8.78125 5.94727,-6.39453 5.94531,-6.39453 -1.92773,-1.45899 c -1.06048,-0.80284 -3.08014,-2.10613 -4.48828,-2.89453 l -2.56055,-1.43359 -6.19531,6.54883 -6.19532,6.54687 -0.0234,7.86914 -0.0254,7.86914 1.90429,2.70313 1.9043,2.70117 -2.62305,2.67187 c -1.44286,1.47017 -2.91283,2.67383 -3.26757,2.67383 -0.6536,0 -5.65625,-4.81772 -5.65625,-5.44726 0,-0.18813 0.80496,-1.35203 1.7871,-2.58789 l 1.78516,-2.24805 0,-9.00586 0,-9.00586 6.25,-6.22852 c 3.4375,-3.4258 6.25,-6.40497 6.25,-6.62109 0,-0.95114 -8.8561,-2.48189 -14.25195,-2.46289 z m -10.74805,59.67969 10.41602,0 10.41797,0 0,12.20117 0,12.20312 -10.41797,0 -10.41602,0 0,-12.20312 0,-12.20117 z"
|
||||
style="fill:#138cce;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5273"
|
||||
d="m 261.86914,888.96838 c -5.72754,0 -7.96949,0.26172 -11.31055,1.32032 -11.51205,3.64754 -21.46164,13.30123 -25.33007,24.57422 -1.64646,4.79797 -2.23832,14.93916 -1.19141,20.39062 0.91196,4.74876 4.59736,12.36764 7.88867,16.3086 6.38558,7.64591 14.65461,12.46232 23.92383,13.93359 4.494,0.71331 12.91727,0.0873 17.48633,-1.29883 5.62976,-1.70788 11.34061,-5.24288 15.89062,-9.83789 l 3.89258,-3.93164 0,6.62305 0,6.62109 3.27344,0 3.27344,0 0,-34.22656 0,-34.22657 -3.27344,0 -3.27344,0 0,4.44532 0,4.44336 -4.0332,-3.99805 c -4.70153,-4.66061 -10.05583,-7.96601 -15.90821,-9.82031 -3.34106,-1.0586 -5.58105,-1.32032 -11.30859,-1.32032 z m 0,6.27149 c 11.63221,0 23.33207,7.41324 28.63672,18.14648 l 2.31641,4.6875 0,9.28907 0,9.28711 -2.25,4.55273 c -3.60787,7.30005 -10.01713,13.06033 -17.83594,16.03125 -6.22921,2.36691 -16.31688,2.31658 -22.47656,-0.11133 -21.52195,-8.48316 -27.19302,-36.23664 -10.7168,-52.44922 5.92802,-5.83316 14.44825,-9.43359 22.32617,-9.43359 z"
|
||||
style="fill:#000000" />
|
||||
<path
|
||||
id="path5269"
|
||||
transform="translate(0,527.95276)"
|
||||
d="m 380.95312,323.81445 0,26.3086 0,26.30859 -4.01953,-3.98828 c -6.53304,-6.48566 -11.74374,-9.3684 -19.68945,-10.88867 -13.29465,-2.54369 -25.45185,1.18767 -34.92969,10.7207 -8.09889,8.14605 -11.22887,15.83418 -11.16797,27.43164 0.0283,5.38204 0.31364,7.41833 1.60547,11.4375 4.37424,13.6092 16.79935,24.28751 30.62305,26.31836 12.67314,1.86181 24.07939,-1.83866 32.96484,-10.69336 l 4.61328,-4.59765 0,6.77343 0,6.77344 2.97461,0 2.97657,0 0,-55.95313 0,-55.95117 -2.97657,0 -2.97461,0 z m -31.92382,43.65821 c 13.60087,-0.11402 26.40181,8.72539 30.75,21.8164 1.10274,3.32005 1.25587,4.92037 1.08008,11.3086 -0.19706,7.16071 -0.2883,7.61674 -2.41211,12.06445 -3.8087,7.97623 -11.34634,14.62866 -19.39063,17.11328 -5.0741,1.56722 -14.4474,1.58376 -19.29687,0.0332 -9.58703,-3.06535 -17.78936,-11.29734 -20.75782,-20.83203 -1.67825,-5.39053 -1.68018,-13.78755 -0.006,-19.13476 3.53984,-11.30501 14.0841,-20.31534 25.79493,-22.04102 1.41563,-0.2086 2.83129,-0.31633 4.23828,-0.32812 z"
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5265"
|
||||
d="m 166.97618,964.83259 c -21.75809,-2.63899 -41.37502,-19.21544 -47.5132,-40.149 -8.96936,-30.58901 7.73501,-62.45221 37.69178,-71.89621 17.57156,-5.5395 37.37588,-2.13356 51.94843,8.93408 l 4.32939,3.28811 -2.24606,1.98485 c -1.23532,1.09167 -2.45482,1.996 -2.70999,2.00963 -0.25517,0.0136 -1.86231,-1.089 -3.57143,-2.45029 -3.87587,-3.08708 -12.62608,-7.29958 -17.71086,-8.52631 -5.44637,-1.31397 -14.93751,-1.77677 -20.04244,-0.9773 -10.66761,1.67062 -19.72254,6.08769 -27.36843,13.35053 -7.42109,7.04931 -12.2821,14.98073 -14.84604,24.22339 -1.52191,5.48625 -1.52191,20.70422 0,26.19047 2.50718,9.03805 7.3927,17.10441 14.44273,23.84605 6.87135,6.57076 13.85917,10.54586 22.5366,12.82017 6.39866,1.67706 19.86299,1.55315 26.11705,-0.24035 5.94228,-1.70409 12.17059,-4.74254 16.72838,-8.16086 1.95784,-1.46837 3.69891,-2.65862 3.86905,-2.64499 0.17013,0.0136 1.31323,0.91206 2.54021,1.99651 l 2.23089,1.97174 -3.59163,2.82174 c -5.42284,4.26043 -13.9438,8.49803 -20.36122,10.12594 -6.48475,1.64499 -15.9717,2.27066 -22.47321,1.4821 z"
|
||||
style="fill:#000000" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5263"
|
||||
d="m 554.65039,889.18128 c -6.91928,-0.0329 -11.14322,0.89901 -17.17578,3.78515 -6.73187,3.22071 -14.14013,10.49111 -17.45899,17.13477 -3.81676,7.64036 -4.95689,17.07431 -3.11523,25.76562 2.80834,13.25329 14.58368,25.28372 28.07422,28.68164 2.39925,0.6043 5.72095,0.81721 10.63281,0.6836 7.94882,-0.21621 12.21352,-1.41533 18.50781,-5.20508 3.48421,-2.09782 11.23524,-9.37022 10.63086,-9.97461 -0.19149,-0.19149 -1.47021,-0.77293 -2.83984,-1.29102 l -2.49023,-0.9414 -3.54493,3.24609 c -10.38689,9.51062 -27.0392,11.10176 -38.37109,3.66797 -5.84027,-3.83126 -8.14693,-0.51508 19.87891,-28.54687 l 24.95117,-24.95899 -1.1582,-1.28906 c -2.07489,-2.30724 -8.44849,-6.52698 -12.09766,-8.00977 -5.08035,-2.06433 -8.51975,-2.71994 -14.42383,-2.74804 z m -0.73242,6.0371 c 5.56474,0 9.74603,0.89672 14.18945,3.03907 7.06617,3.40688 8.82718,0.62704 -16.38281,25.84375 -12.26606,12.26933 -22.58214,22.30859 -22.92383,22.30859 -0.96613,0 -4.2472,-5.88918 -5.30664,-9.52344 -3.40118,-11.66716 -0.39552,-23.80439 7.95117,-32.10742 6.4285,-6.39488 13.86675,-9.56055 22.47266,-9.56055 z"
|
||||
style="fill:#138cce;fill-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5259"
|
||||
d="m 608.83332,964.93466 c -7.19707,-2.36106 -13.28988,-9.16279 -14.52835,-16.21877 -0.37691,-2.14741 -0.36553,-2.16152 2.27884,-2.82738 3.70044,-0.93179 3.9145,-0.87907 3.92925,0.9677 0.0303,3.79834 3.88959,9.15956 7.99629,11.10832 5.17784,2.45704 11.54089,1.43832 15.59585,-2.4969 3.20231,-3.10773 4.49002,-6.06815 4.49002,-10.32244 0,-6.8707 -3.32826,-10.8104 -15.02313,-17.78303 -10.52676,-6.27619 -13.82084,-10.50028 -13.86321,-17.77719 -0.0523,-8.97762 6.11939,-15.90391 14.79141,-16.60002 5.08654,-0.40829 8.59066,0.64275 11.92342,3.57636 3.17952,2.79872 5.02866,6.124 5.02866,9.04296 0,1.84978 -0.25605,2.20604 -2.15603,2.9999 -1.18581,0.49547 -2.33562,0.90085 -2.55512,0.90085 -0.2195,0 -0.7063,-1.14864 -1.08179,-2.55254 -1.32308,-4.94687 -4.78845,-7.70387 -9.68325,-7.70387 -5.79844,0 -10.11905,4.27689 -10.11905,10.01666 0,4.8637 2.85121,8.09148 11.96945,13.55033 10.8892,6.51907 14.41592,10.16486 16.38496,16.93811 2.66095,9.15335 -2.17047,19.74655 -10.91887,23.94034 -3.0701,1.47174 -11.53969,2.19843 -14.45935,1.24061 z"
|
||||
style="fill:#000000" />
|
||||
<path
|
||||
id="path5255"
|
||||
d="m 498.80951,907.71931 0,-55.95239 2.67857,0 2.67857,0 0,55.95239 0,55.95238 -2.67857,0 -2.67857,0 0,-55.95238 z"
|
||||
style="fill:#138cce;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#138cce;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
d="M 0 476.55273 L 0 524.41016 L 744.09375 524.41016 L 744.09375 476.55273 L 743.83789 476.55273 C 742.65253 482.43459 737.47962 486.83789 731.23828 486.83789 L 12.857422 486.83789 C 6.6160829 486.83789 1.4412199 482.43459 0.25585938 476.55273 L 0 476.55273 z "
|
||||
transform="translate(0,527.95276)"
|
||||
id="rect4160" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 16 KiB |
BIN
figures/scm/git-model@2x.png
Normal file
BIN
figures/scm/git-model@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
@ -19,7 +19,9 @@
|
||||
\usepackage{xcolor}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{hyperxmp}
|
||||
\usepackage{minted}
|
||||
\usepackage{tikz}
|
||||
\usepackage{gitdags}
|
||||
%\usepackage{pstricks}
|
||||
%\usepackage{pst-3d,pst-coil,pst-eps,pst-fill,pst-grad,pst-node,pst-plot,pst-text,pst-tree}
|
||||
|
||||
@ -56,10 +58,12 @@
|
||||
\setbeamertemplate{background}
|
||||
{\skbinput[from=fig]{cadoles/gray_frame_background}}
|
||||
|
||||
\newcommand{\commande}[1]{\texttt{#1}}
|
||||
|
||||
\title[]{Formation Git}
|
||||
\subtitle{Oberthur Cash Protection}
|
||||
|
||||
\author[Equipe Auteur]{Cadoles}
|
||||
\author[Equipe Auteur]{Benjamin Bohard}
|
||||
|
||||
\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
|
||||
|
||||
@ -90,12 +94,10 @@
|
||||
\begin{document}
|
||||
|
||||
\skbinput[from=rep]{style/title}
|
||||
\begin{frame}
|
||||
\frametitle{Plan}
|
||||
\tableofcontents[part=1, pausesections]
|
||||
\end{frame}
|
||||
|
||||
\part{Fondamentaux}
|
||||
\frame{\partpage}
|
||||
\frame{\tableofcontents[part=1]}
|
||||
\section{Qu'attendre d'un SCM ?}
|
||||
\skbinput[from=rep]{outils/scm/definition}
|
||||
\skbinput[from=rep]{outils/scm/fonctionnalites_attendues}
|
||||
@ -107,41 +109,44 @@
|
||||
\skbinput[from=rep]{outils/scm/workflow/branching}
|
||||
\skbinput[from=rep]{outils/scm/workflow/driessen}
|
||||
\skbinput[from=rep]{outils/scm/workflow/driessen/schema}
|
||||
\part{Pratique}
|
||||
\skbinput[from=rep]{commun/questions}
|
||||
\part{Préparation}
|
||||
\frame{\partpage}
|
||||
\section{Installation}
|
||||
\subsection{Côté \emph{client}}
|
||||
\skbinput[from=rep]{outils/scm/git/installation/windows}
|
||||
\skbinput[from=rep]{outils/scm/git/installation/macos}
|
||||
\skbinput[from=rep]{outils/scm/git/installation/linux}
|
||||
\subsection{Côté \emph{serveur}}
|
||||
\skbinput[from=rep]{outils/scm/git/web/basicssh}
|
||||
\skbinput[from=rep]{outils/scm/git/web/gitolite}
|
||||
\skbinput[from=rep]{outils/scm/git/web/gitlab}
|
||||
\skbinput[from=rep]{outils/scm/git/web/gogs}
|
||||
\section{Configuration}
|
||||
\subsection{Utilisateur}
|
||||
\skbinput[from=rep]{outils/scm/git/configuration/presentation}
|
||||
\skbinput[from=rep]{outils/scm/git/configuration/user}
|
||||
\skbinput[from=rep]{outils/scm/git/configuration/alias}
|
||||
\subsection{Dépôts}
|
||||
\skbinput[from=rep]{outils/scm/git/configuration/gitignore}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/remote/add}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/branch/track}
|
||||
\section{Ergonomie}
|
||||
\subsection{Ergonomie}
|
||||
\skbinput[from=rep]{outils/scm/git/configuration/alias}
|
||||
\skbinput[from=rep]{outils/scm/git/configuration/editeur}
|
||||
\skbinput[from=rep]{outils/scm/git/configuration/bash}
|
||||
\section{Commandes}
|
||||
\subsection{Pour démarrer un projet}
|
||||
\skbinput[from=rep]{outils/scm/git/configuration/shell}
|
||||
\subsection{Hooks}
|
||||
\skbinput[from=rep]{outils/scm/git/configuration/hooks}
|
||||
\part{Récapitulatif des commandes}
|
||||
\frame{\partpage}
|
||||
\section{Pour démarrer un projet}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/init}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/clone}
|
||||
\subsection{Pour faire le point}
|
||||
\section{Pour faire le point}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/status}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/diff}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/log}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/cherry}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/show}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/bisect}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/ls-files}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/blame}
|
||||
\subsection{Pour modifier le contenu du dépôt}
|
||||
\skbinput[from=rep]{outils/scm/git/stockage}
|
||||
\section{Pour modifier le contenu du dépôt}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/checkout}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/pull}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/fetch}
|
||||
@ -150,42 +155,46 @@
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/add}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/reset}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/clean}
|
||||
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/commit}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/cherry-pick}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/revert}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/push}
|
||||
\subsection{Pour organiser son développement}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/filter-branch}
|
||||
\section{Pour organiser son développement}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/branch}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes/tag}
|
||||
\section{Mise en pratique}
|
||||
\subsection{Mise en place}
|
||||
\section{Aide-mémoire}
|
||||
\skbinput[from=rep]{outils/scm/git/commandes}
|
||||
\part{Mise en pratique}
|
||||
\frame{\partpage}
|
||||
\section{Mise en place}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_01}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_01/steps}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_02}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_02/steps}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_03}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_03/steps}
|
||||
\subsection{Dépôt individuel}
|
||||
\section{Dépôt individuel}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_04}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_04/steps}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_05}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_05/steps}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_06}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_06/steps}
|
||||
\subsection{Dépôt commun}
|
||||
\section{Dépôt commun}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_07}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_07/steps}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_08}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_08/steps}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_09}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_09/steps}
|
||||
\subsection{Paquet debian}
|
||||
\section{Paquet debian}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_10}
|
||||
\skbinput[from=rep]{outils/scm/git/exercices/exercice_10/steps}
|
||||
\section{Pour aller plus loin}
|
||||
\part{Pour aller plus loin}
|
||||
\frame{\partpage}
|
||||
\skbinput[from=rep]{outils/scm/git/references/references}
|
||||
\section{licence}
|
||||
\part{licence}
|
||||
\skbinput[from=rep]{licences/license-cc-by-sa-2.0}
|
||||
|
||||
\end{document}
|
||||
|
279
presentations/outils/git/gitdags.sty
Normal file
279
presentations/outils/git/gitdags.sty
Normal file
@ -0,0 +1,279 @@
|
||||
%%
|
||||
%% Copyright (C) 2014 by Julien Cretel <jubobs.tex at gmail.com>
|
||||
%%
|
||||
%% This work may be distributed and/or modified under the
|
||||
%% conditions of the LaTeX Project Public License, either version 1.3
|
||||
%% of this license or (at your option) any later version.
|
||||
%% The latest version of this license is in
|
||||
%%
|
||||
%% http://www.latex-project.org/lppl.txt
|
||||
%%
|
||||
%% and version 1.3 or later is part of all distributions of LaTeX
|
||||
%% version 2005/12/01 or later.
|
||||
%%
|
||||
%% This work has the LPPL maintenance status `maintained'.
|
||||
%%
|
||||
%% The Current Maintainer of this work is Julien Cretel.
|
||||
%%
|
||||
%% This work currently consists of the file gitdags.sty.
|
||||
%%
|
||||
\NeedsTeXFormat{LaTeX2e}[2011/06/27]
|
||||
\ProvidesClass{gitdags}
|
||||
[2014/08/28 v0.1 A package for drawing educational Git history graphs]
|
||||
|
||||
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tikz}}
|
||||
\ProcessOptions\relax
|
||||
|
||||
\RequirePackage{xcolor-solarized}
|
||||
\RequirePackage{tikz}
|
||||
\usetikzlibrary{
|
||||
arrows.meta,
|
||||
graphs,
|
||||
positioning,
|
||||
shadows,
|
||||
shapes,
|
||||
}
|
||||
|
||||
% conflict color
|
||||
\colorlet{conflictcolor}{red}
|
||||
|
||||
% custom shape, adapted from 102.5.3 in the TikZ 3.0 manual
|
||||
\pgfdeclareshape{dogeared}{
|
||||
\inheritsavedanchors[from=rectangle]
|
||||
\inheritanchorborder[from=rectangle]
|
||||
\inheritanchor[from=rectangle]{center}
|
||||
\inheritanchor[from=rectangle]{north}
|
||||
\inheritanchor[from=rectangle]{south}
|
||||
\inheritanchor[from=rectangle]{west}
|
||||
\inheritanchor[from=rectangle]{east}
|
||||
\backgroundpath{%
|
||||
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
|
||||
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
|
||||
\pgf@xc=\pgf@xb \advance\pgf@xc by-5pt
|
||||
\pgf@yc=\pgf@yb \advance\pgf@yc by-5pt
|
||||
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
|
||||
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
|
||||
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yb}}
|
||||
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
|
||||
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
|
||||
\pgfpathclose
|
||||
\pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@yb}}
|
||||
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
|
||||
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
|
||||
\pgfpathclose
|
||||
}
|
||||
}
|
||||
|
||||
% To cancel a shadow (see http://tex.stackexchange.com/a/198298/21891)
|
||||
\tikzset{reset preaction/.code={\def\tikz@preactions{}}}
|
||||
|
||||
% --- repository history graphs ---
|
||||
% style definitions
|
||||
\tikzset{
|
||||
gitdags node/.style={
|
||||
draw,
|
||||
node distance = 1.4em,
|
||||
drop shadow = {opacity=0.15},
|
||||
font = \fontfamily{lmtt}\selectfont\small,
|
||||
},
|
||||
DAGref/.style={
|
||||
gitdags node,
|
||||
shape = rectangle,
|
||||
minimum height = 1.4em,
|
||||
draw = solarized-base01,
|
||||
thick,
|
||||
font = \fontfamily{lmtt}\selectfont\scriptsize,
|
||||
},
|
||||
DAGedge/.style={
|
||||
semithick,
|
||||
Latex-,
|
||||
draw = gray,
|
||||
},
|
||||
DAGrefedge/.style={
|
||||
DAGedge,
|
||||
thick,
|
||||
densely dotted,
|
||||
},
|
||||
DAGcommit/.style={
|
||||
gitdags node,
|
||||
shape = rounded rectangle,
|
||||
rounded rectangle arc length = 90,
|
||||
minimum height = 1.6em,
|
||||
minimum width = 2em,
|
||||
draw = solarized-base01,
|
||||
fill = solarized-green!20,
|
||||
very thick,
|
||||
},
|
||||
graphs/DAG/.style={
|
||||
nodes = DAGcommit,
|
||||
edges = DAGedge,
|
||||
branch down = 3em,
|
||||
grow right sep = 1.5em,
|
||||
},
|
||||
gitareas/.style={
|
||||
gitdags node,
|
||||
shape = rectangle,
|
||||
rounded corners = .5em,
|
||||
minimum width = 7em,
|
||||
minimum height = 3em,
|
||||
text opacity = 0.75,
|
||||
semithick,
|
||||
},
|
||||
gitSA/.style={
|
||||
gitareas,
|
||||
anchor = north west,
|
||||
xshift = 1em,
|
||||
yshift = -1em,
|
||||
draw = solarized-orange,
|
||||
fill = solarized-orange!5,
|
||||
text = solarized-orange,
|
||||
},
|
||||
gitWT/.style={
|
||||
gitareas,
|
||||
node distance = .6em,
|
||||
draw = solarized-violet,
|
||||
fill = solarized-violet!5,
|
||||
text = solarized-violet,
|
||||
},
|
||||
resetarrows/.style={
|
||||
-Stealth,
|
||||
dashed,
|
||||
thick,
|
||||
draw = solarized-base02,
|
||||
draw opacity = .75,
|
||||
},
|
||||
highlighted commit/.style={
|
||||
DAGcommit,
|
||||
reset preaction,
|
||||
fill opacity = 0,
|
||||
draw = solarized-base02,
|
||||
},
|
||||
problematic commits/.style={
|
||||
reset preaction,
|
||||
draw opacity = .25,
|
||||
fill opacity = .25,
|
||||
},
|
||||
graphs/unreachable/.style={
|
||||
problematic commits,
|
||||
target edge style = problematic commits,
|
||||
},
|
||||
graphs/conflict/.style={
|
||||
empty nodes,
|
||||
problematic commits,
|
||||
target edge style = problematic commits,
|
||||
draw = conflictcolor,
|
||||
fill = conflictcolor!25,
|
||||
},
|
||||
placeholder commits/.style={
|
||||
reset preaction,
|
||||
draw opacity = 0,
|
||||
fill opacity = 0,
|
||||
},
|
||||
graphs/placeholder/.style={
|
||||
placeholder commits,
|
||||
target edge style = placeholder commits,
|
||||
},
|
||||
blob/.style={
|
||||
shape = dogeared,
|
||||
minimum width = 2em,
|
||||
minimum height = 2.82em,
|
||||
node distance = .75em,
|
||||
line join = bevel,
|
||||
draw = black,
|
||||
fill = white,
|
||||
align = left,
|
||||
font = \ttfamily\tiny,
|
||||
},
|
||||
}
|
||||
|
||||
% directed acyclic graph
|
||||
\newcommand\gitDAG[1][]{\graph[DAG,#1]}
|
||||
|
||||
% helper macro (let's check the name's availability)
|
||||
\newcommand\nodename@gitdags{}
|
||||
|
||||
% local-branch reference
|
||||
\newcommand\gitbranch[4][]{%
|
||||
\renewcommand\nodename@gitdags{#1}%
|
||||
\if\relax\detokenize{#1}\relax% check for empty optional argument
|
||||
\renewcommand\nodename@gitdags{#2}%
|
||||
\fi
|
||||
\node[
|
||||
DAGref,
|
||||
fill = yellow!30,
|
||||
] (\nodename@gitdags) [#3] {#2};
|
||||
\draw[DAGrefedge] (#4) -- (\nodename@gitdags);
|
||||
}
|
||||
|
||||
% remote-branch reference
|
||||
\newcommand\gitremotebranch[4][]{%
|
||||
\renewcommand\nodename@gitdags{#1}%
|
||||
\if\relax\detokenize{#1}\relax% check for empty optional argument
|
||||
\renewcommand\nodename@gitdags{#2}%
|
||||
\fi
|
||||
\node[
|
||||
DAGref,
|
||||
fill = solarized-blue!20,
|
||||
] (\nodename@gitdags) [#3] {#2};
|
||||
\draw[DAGrefedge] (#4) -- (\nodename@gitdags);
|
||||
}
|
||||
|
||||
% tag reference
|
||||
\newcommand\gittag[4][]{%
|
||||
\renewcommand\nodename@gitdags{#1}%
|
||||
\if\relax\detokenize{#1}\relax% check for empty optional argument
|
||||
\renewcommand\nodename@gitdags{#2}%
|
||||
\fi
|
||||
\node[
|
||||
DAGref,
|
||||
fill = solarized-magenta!20,
|
||||
] (\nodename@gitdags) [#3] {#2};
|
||||
\draw[DAGrefedge] (#4) -- (\nodename@gitdags);
|
||||
}
|
||||
|
||||
% HEAD symbolic reference
|
||||
\newcommand\gitHEAD[2]{%
|
||||
\node[
|
||||
DAGref,
|
||||
fill = solarized-red!20,
|
||||
node distance = 1em,
|
||||
] (gitHEAD) [#1] {HEAD};
|
||||
\draw[DAGrefedge] (#2) -- (gitHEAD);
|
||||
}
|
||||
|
||||
% the following macro is useful for explaining how merge conflicts arise
|
||||
\newcommand\gitblob[2][]
|
||||
{\node[blob,#1] {#2};}
|
||||
|
||||
% to highlight a merge conflict arising in a given file
|
||||
\newcommand\gitblobmc[1]{%
|
||||
\node[
|
||||
blob,
|
||||
draw = conflictcolor,
|
||||
text = conflictcolor,
|
||||
font = \scriptsize,
|
||||
#1] {???};
|
||||
}
|
||||
|
||||
% staging area and worktree
|
||||
\newcommand\SAandWT{%
|
||||
\node[
|
||||
gitSA,
|
||||
] (stagingarea) at (current bounding box.south east) {staging area};
|
||||
\node[
|
||||
gitWT,
|
||||
below=of stagingarea,
|
||||
] (workingtree) {working tree};
|
||||
}
|
||||
|
||||
% arrows pointing from a commit to the staging area or working tree
|
||||
\newcommand\toSAorWT[2]{%
|
||||
\node[highlighted commit] at (#1) {\phantom{#1}};
|
||||
\draw[resetarrows] (#1.south) to[out=290, in=170]
|
||||
([xshift=1em,yshift=-1em]#2.north west);
|
||||
}
|
||||
|
||||
\newcommand\toSAfrom[1]{\toSAorWT{#1}{stagingarea}}
|
||||
\newcommand\toWTfrom[1]{\toSAorWT{#1}{workingtree}}
|
||||
|
||||
\endinput
|
92
presentations/outils/git/xcolor-solarized.sty
Normal file
92
presentations/outils/git/xcolor-solarized.sty
Normal file
@ -0,0 +1,92 @@
|
||||
%%
|
||||
%% This is file `xcolor-solarized.sty',
|
||||
%% generated with the docstrip utility.
|
||||
%%
|
||||
%% The original source files were:
|
||||
%%
|
||||
%% xcolor-solarized.dtx (with options: `package')
|
||||
%%
|
||||
%% This is a generated file.
|
||||
%%
|
||||
%% Copyright (C) 2014 by Julien Cretel <jubobs.tex at gmail.com>
|
||||
%%
|
||||
%% This work may be distributed and/or modified under the
|
||||
%% conditions of the LaTeX Project Public License, either version 1.3
|
||||
%% of this license or (at your option) any later version.
|
||||
%% The latest version of this license is in
|
||||
%%
|
||||
%% http://www.latex-project.org/lppl.txt
|
||||
%%
|
||||
%% and version 1.3 or later is part of all distributions of LaTeX
|
||||
%% version 2005/12/01 or later.
|
||||
%%
|
||||
%% This work has the LPPL maintenance status `maintained'.
|
||||
%%
|
||||
%% The Current Maintainer of this work is Julien Cretel.
|
||||
%%
|
||||
%% This work currently consists of the files xcolor-solarized.dtx,
|
||||
%% xcolor-solarized.ins, and the derived file xcolor-solarized.sty.
|
||||
%%
|
||||
|
||||
\NeedsTeXFormat{LaTeX2e}[2011/06/27]
|
||||
\ProvidesPackage{xcolor-solarized}
|
||||
[2015/02/17 v0.3 xcolor definitions for Ethan Schoonover's
|
||||
Solarized theme]
|
||||
\RequirePackage{xcolor}[2007/01/21]
|
||||
\RequirePackage{kvoptions}[2011/06/30]
|
||||
\SetupKeyvalOptions{
|
||||
family=solarized,
|
||||
prefix=solarized@
|
||||
}
|
||||
\DeclareStringOption[solarized-]{prefix}
|
||||
\DeclareDefaultOption{%
|
||||
\OptionNotUsed
|
||||
\PackageError{xcolor-solarized}{Unknown `\CurrentOption' option}
|
||||
}
|
||||
\ProcessKeyvalOptions*
|
||||
\newcommand\solarized@definecolor{\expandafter\definecolor\expandafter}
|
||||
\solarized@definecolor{\solarized@prefix base03} {RGB}{000, 043, 054}
|
||||
\solarized@definecolor{\solarized@prefix base02} {RGB}{007, 054, 066}
|
||||
\solarized@definecolor{\solarized@prefix base01} {RGB}{088, 110, 117}
|
||||
\solarized@definecolor{\solarized@prefix base00} {RGB}{101, 123, 131}
|
||||
\solarized@definecolor{\solarized@prefix base0} {RGB}{131, 148, 150}
|
||||
\solarized@definecolor{\solarized@prefix base1} {RGB}{147, 161, 161}
|
||||
\solarized@definecolor{\solarized@prefix base2} {RGB}{238, 232, 213}
|
||||
\solarized@definecolor{\solarized@prefix base3} {RGB}{253, 246, 227}
|
||||
\solarized@definecolor{\solarized@prefix yellow} {RGB}{181, 137, 000}
|
||||
\solarized@definecolor{\solarized@prefix orange} {RGB}{203, 075, 022}
|
||||
\solarized@definecolor{\solarized@prefix red} {RGB}{220, 050, 047}
|
||||
\solarized@definecolor{\solarized@prefix magenta}{RGB}{211, 054, 130}
|
||||
\solarized@definecolor{\solarized@prefix violet} {RGB}{108, 113, 196}
|
||||
\solarized@definecolor{\solarized@prefix blue} {RGB}{038, 139, 210}
|
||||
\solarized@definecolor{\solarized@prefix cyan} {RGB}{042, 161, 152}
|
||||
\solarized@definecolor{\solarized@prefix green} {RGB}{133, 153, 000}
|
||||
\newcommand\solarizedPalette[1][3em]{%
|
||||
\newcommand\solarized@square{\rule{#1}{#1}}
|
||||
\noindent
|
||||
\begin{tabular}{cccc cccc}
|
||||
\textcolor{solarized-base03} \solarized@square &
|
||||
\textcolor{solarized-base02} \solarized@square &
|
||||
\textcolor{solarized-base01} \solarized@square &
|
||||
\textcolor{solarized-base00} \solarized@square &
|
||||
\textcolor{solarized-base0} \solarized@square &
|
||||
\textcolor{solarized-base1} \solarized@square &
|
||||
\textcolor{solarized-base2} \solarized@square &
|
||||
\textcolor{solarized-base3} \solarized@square \\
|
||||
base03 & base02 & base01 & base00 &
|
||||
base0 & base1 & base2 & base3 \\[#1]
|
||||
\textcolor{solarized-yellow} \solarized@square &
|
||||
\textcolor{solarized-orange} \solarized@square &
|
||||
\textcolor{solarized-red} \solarized@square &
|
||||
\textcolor{solarized-magenta}\solarized@square &
|
||||
\textcolor{solarized-violet} \solarized@square &
|
||||
\textcolor{solarized-blue} \solarized@square &
|
||||
\textcolor{solarized-cyan} \solarized@square &
|
||||
\textcolor{solarized-green} \solarized@square \\
|
||||
yellow & orange & red & magenta &
|
||||
violet & blue & cyan & green
|
||||
\end{tabular}
|
||||
}
|
||||
\endinput
|
||||
%%
|
||||
%% End of file `xcolor-solarized.sty'.
|
Loading…
Reference in New Issue
Block a user