INDEX
Exporter le log de toutes les mises à jour dans un fichier CSV :
git log --since='last year' --pretty=format:'"%h","%an","%ar","%s"' > log.csv
Les fichiers .gitignore
Le fichier .gitignore
placé à la racine de l’arbre de travail permet à git d’exclure certains documents ou répertoires.
Un fichier minimaliste :
.DS_Store nbproject htaccess.txt htpasswd.txt thumbs.db
Cependant dans le cadre du développement d’un site, vous pouvez être amené à créer des dossiers d’upload sur le serveur. Vous voulez committer l’existence de ces dossiers, mais pas leur contenu (des fichiers uploadés en test).
De même peut-être que votre environnement nécessite des répertoires de travail. Par exemple, chez Italic notre version customisée de [Kohana->https://www.italic.fr/php/article/trucs-utiles-pour-le-framework] requiert un dossier cache_kohana
et logs_kohana
; de plus notre server de staging est configuré pour ajouter automatiquement un dossier logs
à la racine de chaque vhost.
Le problème vient du fait que git traque des fichiers et non des dossiers. Donc en mettant, par exemple, dans le .gitignore
…
cache_kohana/* logs_kohana/* logs_kohana/* uploads/*
…on va bien évidemment exclure les fichiers. Problème : on va aussi exclure la création des répertoires, puisqu’il n’y a pas de fichier dedans => git les ignore aussi !
Donc au prochain clone
, il faudra recréer ces répertoires manquants à la main…
L’astuce : créer un fichier .gitignore
spécial dans chaque dossier à conserver par exemple :
cache_kohana/.gitignore
:
* !.gitignore
Ce fichier indique à git de tout ignore, sauf le .gitignore lui-même.
De la sorte, votre arborescence sera conservée à chaque clone
.
Une variante : créer un fichier .gitkeep
spécial dans chaque dossier à conserver. Le fichier peut être vide.
Pour créer un nouveau repository
ssh USER@SERVER mkdir REPO cd REPO git --bare init
Pour pousser des fichiers dans le repository
ssh://USER@SERVER/home/USER/REPO
Pour cloner le repository
git clone ssh://USER@SERVER/home/USER/REPO
Pour télécharger un ZIP de la dernière version du master
git archive --format zip --output latest.zip --remote=ssh://USER@SERVER/home/git/REPO master
Pour créer un changelog
git log > changelog.txt