====== 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
*~