\chapter{GIT} \index{GIT} \label{chap:GIT} Git est un système de gestion de version, très bien expliqué aux quatre coins des interwebs. Je ne vais donc pas m'étendre plus que ça, pour passer tout de suite à un cas particulier \footnote{que je n'arrive pas encore à vraiment maitriser}. % -------------------------------------------------------------------- \section{Démarrage} \subsection{En local} \begin{verbatim} $ mkdir Foo $ cd Foo/ $ git init $ > README.txt $ git add README.txt \end{verbatim} \subsection{Setup du serveur} Sur le serveur distant, dans un endroit accessible par le protocole \texttt{HTTP}, il faut créer le dépot. \begin{verbatim} $ mkdir Foo $ cd Foo/ $ git init --bare \end{verbatim} Et ensuite : \begin{verbatim} $ git update-server-info \end{verbatim} % -------------------------------------------------------------------- \subsection{Pousser le code} Notre commit\index{commit} local semble pertinent, il est temps de le faire connaitre au monde. \begin{verbatim} $ git push yuser@serveur:/chemin/vers/le/depot/Foo \end{verbatim} % -------------------------------------------------------------------- \section{Configuration dynamique} \texttt{http://sandrotosi.blogspot.com/2020/10/multiple-git-configurations-depending.html} One way to change the user.email git config value is to git config --local in every repo, but that's tedious, error-prone and doesn't scale very well with many repositories (and the chances to forget to set the right one on a new repo are ~100\%). The solution is to use the git-config ability to include extra configuration files, based on the repo path, by using includeIf: \vspace{1em} Content of \texttt{\$HOME/.gitconfig} : \begin{verbatim} [user] name = Sandro Tosi email = @gmail.com [includeIf "gitdir:~/deb/"] path = ~/.gitconfig-deb \end{verbatim} Every time the git path is in ~/deb/ (which is where i have all Debian repos) the file ~/.gitconfig-deb will be included; its content: \begin{verbatim} [user] email = morph@debian.org \end{verbatim} That results in my personal address being used on all repos not part of Debian, where i use my Debian email address. This approach can be extended to every other git configuration values. % -------------------------------------------------------------------- \section{Krkrkr...} Tout cela semble bien compliqué.