====== Git ====== ===== Installation ===== L'installation dépend du système d'exploitation.\\ Par exemple sous debian: apt-get install git ===== Dépendances ===== Avant de commencer il faut savoir que git se base sur ssh, le serveur client qui souhaitera communiquer avec le dépôt devra partager sa clef ssh publique. ===== Configuration ===== Se placer sur le serveur/poste/répertoire qui hébergera de dépôt git et ne servira qu'à ça, les sources de ce serveur/répertoire ne seront pas éditées.\\ Créer et se déplacer dans le répertoire souhaité, exemple : cd /home/jonathan/ mkdir depot.git cd depot.git Initialiser le dépt grâce à la commande suivante : git init --bare L'option "--bare" signifie que ce ne sera pas un répertoire de travail, contrairement à une initialisation classique que l'on verra plus loin. \\ Se placer sur le serveur/poste/répertoire de travail, d'où le code sera édité.\\ Créer et se déplacer dans le répertoire souhaité, exemple : cd /home/jonathan/ mkdir remoteserver cd remoteserver Initialiser le répertoire de travail : git init Pour éviter d'avoir les messages d'alerte, configurer les coordonnées maintenant : git config user.email "jonathan@localhost" git config user.name "jonathan" Définir ce répertoire comme clone du dépôt : git clone jonathan@remoteserver:'depot.git' Le fichier de configuration du répertoire de travail se trouve alors à l'emplacement suivant: cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [user] email = jonathan@localhost name = jonathan [remote "origin"] url = jonathan@raspiplop:depot.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master Le serveur/poste/répertoire est prêt à être exploité. ===== Utilisation ===== Ajouter un premier fichier, par exemple : mkdir monsiteweb cd monsiteweb echo "User-agent: * Disallow: /" > robot.txt Ajouter ce répertoire et son contenu comme objets à prendre en compte : git add monsiteweb Effectuer le premier commit : git commit -m "Initial commit : add monsiteweb/robot.txt" L'option "-m" permet d'écrire un commentaire, celui ci sera demandé s'il n'est pas précisé, autant ne pas l'oublier.\\ Enfin, pousser les modifications vers le dépôt : git push origin master ===== Trucs ===== ==== Hooks : Post-Upload ==== Il est possible de préciser au dépôt git d'effectuer des actions après un commit, par exemple pour mettre à jour un site web.\\ L'exemple ci-dessous définit le répertoire "/var/www/" comme répertoire de travail : sudo git clone /home/jonathan/depot.git /var/www Les commandes souhaitées se placent alors dans le fichier suivant : cat depot.git/hooks/post-upload #!/bin/bash # ## # Auteur: Jonathan Demmerlé # Le : 06/02/2016 ## echo " - mise en production - " cd /var/www unset GIT_DIR sudo git pull origin master sudo chown -R www-data: /var/www/* ==== Info : Exclude ==== Il est possible de ne pas prendre en compte des fichiers définis, par exemple, les fichiers temporaires ou de travail de certains logiciels : cat .git/info/exclude # git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] git ls-files --others --exclude-from=.git/info/exclude *~