[Traduction automatique, lisez à votre risque et péril.]
Cet article décrira comment j'ai configuré et utilisé mon serveur de référentiel Git personnel. Git est une machine à remonter le temps, et utile pour suivre les modifications du code source, mais aussi des documents bureautiques. Git fournit également un moyen de synchroniser des fichiers distants. J'utilise un logiciel de gestion de version personnel depuis que j'ai lu un article de Lifehacker à ce sujet. Git a des frais généraux. Cet article est destiné à décrire ma configuration et mon utilisation.
Aperçu
Le serveur et le client Git dialogueront principalement via SSH. Le serveur utilise un compte Unix régulier et un système de fichiers, ne nécessitant rien de plus que SSH. En plus de l'accès SSH, je mettrai en place une interface web vers les fichiers avec accès par mot de passe.
Mon fournisseur d'hébergement est actuellement WebFaction. Bien que j'en sois satisfait, j'ai perdu une fois tous mes fichiers sur le serveur. Par conséquent, je prendrai un soin particulier avec ma stratégie de sauvegarde.
Puisqu'il s'agit d'un usage personnel, je le configurerai pour https://git.mann.fr. Je pourrais et pourrais également configurer https://git.managence.com et / ou https://git.seeshoot.com.
Les fichiers du système de contrôle sont principalement des fichiers de travail susceptibles de changer avec un historique que je souhaite gérer. Je devrais prendre soin d'exclure le dossier «.git» des autres systèmes de synchronisation tels que Dropbox, ou des schémas d'historisation.
Le serveur
Je pourrais utiliser mon compte Unix régulier pour l'accès SSH avec un fichier de certificat. Je pourrais également utiliser un compte spécifique pour l'utilisation de Git (plus sécurisé). J'ai tendance à penser que la protection par mot de passe sur le certificat serait utile. Je vais créer un groupe Posix c2git à cet effet (et peut-être un utilisateur du même nom).
J'ai paramétré les noms de domaine mann.fr, seeshoot.com, managence.com pour qu'ils pointent tous vers les serveurs de noms Webfaction. J'ajouterai git. à chaque domaine et cela suffira pour l'accès ssh. L'accès Web impliquera la création et la configuration des applications CGI git fournies par Webfaction. Puisque je rapprocherai les données du référentiel de la racine, je changerai le répertoire par défaut.
Mon répertoire utilisateur sur Webfaction est / home / chris2fr. Par conséquent, mes répertoires de dépôt seront /home/chris2fr/data/git/{mann.fr|seeshoot.com|managence.com|configmagic.com}[repositoryname]. Le nom du référentiel doit être globalement unique et initié avec git init –bare repositoryname dans un terminal ssh. En supposant que j'ai créé l'utilisateur c2git, l'accès SSH serait alors c2git@git.managence.com/home/chris2fr/data/git/managence.com/repositoryname.git. Voici les commandes d'initialisation d'un référentiel:
cd /home/chris2fr/data/git/managence.com git init --bare repositoryname.git
L'application Web que j'utilise, gitweb, nécessite une application Web et un dossier de base de référentiel. Je nommerai les webapps gitmannfr, gitseeshootcom, gitmanagencecom et gitconfigmagiccom. Je changerai les dépôts pour qu'ils pointent vers /home/chris2fr/data/git/{mann.fr|seeshoot.com|managence.com|configmagic.com}.
Je vais sauvegarder à partir de mon serveur local avec un script lié à un travail anachron. Le script sera situé ici: /opt/scripts/backupgit.sh. Il copiera le contenu de / home / chris2fr / data / git dans / mnt / c43 / c_backup / webfaction / data / git.
Le client
Les applications clientes peuvent être en ligne de commande, github, tortoisegit, etc. Le site Web https://help.github.com/ fournit d'excellentes ressources pour cela. Voici les commandes que j'oublie toujours:
git config --global user.name "c2git" git config --global user.email "christopher@mann.fr"
Étant donné que j'ai un compte de messagerie séparé pour chaque domaine, je pourrais utiliser une adresse e-mail différente par référentiel:
git config user.email "christopher@mann.fr" git config user.email "christopher@managence.com" git config user.email "christopher@seeshoot.com"
Comme je l'ai noté précédemment, la sauvegarde et la synchronisation sont gérées à partir de Git, nous devons donc les garder indépendantes des autres systèmes.
Le serveur distant et les URL de clonage sont les suivants:
git remote ajouter l'origine ssh: //chris2fr@git.seeshoot.com/home/chris2fr/data/git/seeshoot.com/wwwseeshootcom.git git clone ssh: //chris2fr@git.seeshoot.com/home/chris2fr/data /git/seeshoot.com/wwwseeshootcom.git
Se souvenir de quoi
Git est un outil puissant. Comme pour tout outil électrique, il existe des risques. Je pense que deux étapes pourraient m'aider à garder une trace des référentiels que j'ai et pourquoi je les ai créés: anticiper l'utilité du référentiel avec une raison pour la création de nouveaux référentiels, et; conserver un index annoté des référentiels, par exemple avec un fichier readme dans le référentiel lui-même.
Les directives initiales pour la mise en place d'un référentiel sont que le dossier soit un site Web. J'utiliserai le git uniquement pour les sites Web et les applications informatiques au départ. Je peux ou non inclure des fichiers binaires.
Le fichier readme dépendra de ce que gitweb prend en charge. README est une utilisation courante.
Conclusion
J'ai détaillé dans cet article Web comment j'ai l'intention d'utiliser mon serveur Web en tant que référentiel de fichiers Git. J'ai l'intention de suivre ce plan et de continuer avec l'outil dans certains de mes efforts.