NAS Synology : Installer et utiliser Git localement pour ne plus être dépendant de GitHub

Soutenez un média indépendant

Reportages, enquêtes, initiatives et solutions en accès libre : pour un numérique plus responsable, notre rédaction compte sur vous.

NAS Synology : Installer et utiliser Git localement pour ne plus être dépendant de GitHub

GitHub et Gitlab sont les plateformes leaders sur le marché pour héberger, versionner les codes sources d’énormement de projets web, applications mobiles… Leur dépendance pose de nombreux problèmes de sécurité (vol de mot de passe, récupération de code source…).

Qu’est-ce qu’un NAS ?

Un NAS signifie Network Attached Storage. En français, s’il vous plaît ? Cela veut dire serveur de stockage en réseau. Le principe est simple : disposer d’une solution de stockage fiable qui effectue accessoirement des sauvegardes, tout cela connecté à votre réseau internet. En gros, vous pouvez vous créer une Dropbox/Google Drive maison qui sécurise les données qui sont chères à vos yeux. Pour ma part, j’ai un Synology : c’est la marque leader du marché et ça ressemble à ça :

Synology DS-212J Cet équipement est multi-fonction : stocker des photos précieuses, des informations importantes et des projets GIT.

Qu’est-ce que GIT ?

Git est un logiciel de gestion de versions décentralisées (merci Wikipédia). C’est un logiciel libre créé par Linus Torvalds, célèbre concepteur du noyau Linux. Pour faire simple, Git est l’ami des développeurs qui ont besoin d’avoir un versionning de leur code : c’est à dire pouvoir sauvegarder leur code et revenir en arrière si nécessaire. Et en même temps, éviter les conflits quand plusieurs développeurs travaillent sur le même fichier de code. Donc quand on est développeur, il est nécessaire d’avoir un repository Git pour sauvegarder son projet. Si vous voulez voir à quoi cela ressemble, je vous propose le site GitHub qui propose d’héberger publiquement et gratuitement votre code. Vous y retrouverez donc la plupart des projets open-sources avec le code associé. Pour poursuivre l’article, vous devez avoir installé Git sur votre PC.

Passons à la technique

La première étape consiste à installer le paquet Git. Pour cela, rendez-vous dans l’interface web Synology, puis sur le centre de paquets.

Ensuite, recherchez le paquet Git et installez-le. Puis accédez au menu principal de l’application afin de paramétrer les droits d’accès.

Centre de paquetsDésignez les personnes qui pourront utiliser Git. Pour réaliser ce guide avec succès, vous devez activer le service SSH et créer un répertoire partagé qui contiendra les sources.

Pour ce tutoriel, j’ai crée un dossier GitProject partagé, dans lequel j’ai séparé mes types de projets par langages. C’est une manière de s’organiser. Pour la suite, je vais créer un projet qui s’intitule « whynot » et qui est en Java.

Mise en pratique

Connectez-vous en SSH à votre serveur NAS en utilisant Putty ou un autre logiciel.

Rendez-vous dans votre répertoire contenant vos projet Git avec la commande cd.

cd /volume1/GitProject/JavaProject/

Initialisez votre repository Git avec un :

git init --bare --shared ./whynot.git

La commande retourne le message suivant :

Initialized empty shared Git repository in /volume1/GitProject/JavaProject/whynot.git/

Vous en avez fini avec la partie NAS, maintenant, il va falloir cloner le projet sur votre ordinateur pour pouvoir enfin coder et faire avancer votre projet.

Retour sur l’ordinateur local

Placez-vous à l’endroit ou vous voulez créer votre projet sur votre PC local. Dans mon cas, je vais dans le répertoire JavaProject de mon dossier Dropbox. Oui, je sauvegarde mon code de partout, même sur Dropbox.

Ensuite, faites un clic droit dans votre répertoire, puis un Git Bash. Et vous allez obtenir une console comme ci-dessous :

console Git

Puis vous devez saisir la commande suivante :

git clone ssh://admin@NOVASTATION:/volume1/GitProject/JavaProject/whynot.git

N’oubliez pas de remplacer admin par votre nom d’utilisateur qui est autorisé à accéder à Git. Et aussi de modifier le nom ou l’adresse IP de votre serveur NAS , et surtout de changer le chemin pour qu’il soit en accord avec votre projet.

Vous obtenez alors le résultat suivant :

Git Clone

Le serveur va vous demander votre mot de passe pour confirmer votre identité, et ensuite il va vous cloner : c’est à dire copier-coller tous les fichiers de votre projet dans votre répertoire courant. Cela peut prendre du temps en fonction du poids de votre projet.

Vous pouvez maintenant coder dans votre répertoire. Avant de pousser votre code, vous devez vérifier ce que vous allez envoyer sur le serveur. C’est primordial !

Pour cela, vous devez faire un

git status

Vous obtiendrez ce résultat :
wordpress

Analysons ensemble la réponse que l’on reçoit : Git nous dit simplement qu’il n’a rien à envoyer sur le serveur mais qu’il a détecté des fichiers/répertoires qui pourraient être rajoutés et commités. Git vous montre la commande à utiliser et les répertoires que vous pouvez ajouter. Si vous souhaitez ajouter en une commande tous les répertoires et fichiers, vous pouvez utiliser la commande suivante :

git add *

Dans ce cas, tout est alors intégré. Vous pouvez être aussi très précis en lui spécifiant ce qu’il doit ajouter fichier par fichier, comme dans la fonction suivante :

git add monfichier.java
git add monfichier2.java
git add unautrefichier.java unsecondfichier.java

Toutes ces combinaisons sont possibles : à vous de choisir ce qui vous paraît le plus simple et le plus rapide.

Pour ma part, je fais de cette manière :

git add src/

Cette commande me permet d’ajouter tous mes fichiers sources présents dans le dossier src/. Le résultat obtenu est le suivant :

Git addOn peut voir dans le retour de la commande que Git a ajouté deux fichiers dont il a changé le format de fin de ligne.

Mais l’opération n’est pas encore finie : pour l’instant, on a juste indiqué à Git les fichiers à « sauvegarder » ou à commiter. Maintenant, on peut faire notre commit, pour les envoyer ensuite sur notre NAS. Pour ce faire, vous devez saisir la commande suivante :

git commit -a -m "Mon premier commit de projet"

Analysons un court instant cette commande. Git commit vous permet de préparer l’envoi d’un ensemble de fichiers, soit de les ajouter, modifier ou supprimer de votre répertoire.

L’option -a spécifie à Git de sélectionner tous les fichiers (qu’on lui a demandé d’ajouter au Git grâce à la commande git add).

L’option -m permet de joindre un message à votre commit, et il est très important de’indiquer un message qui a du sens. Car quand vous voudrez revenir en arrière pour une raison X ou Y, si vous n’avez pas écrit des messages ou des étiquettes qui sont parlantes, vous allez mettre du temps à retrouver un vieux morceau de code. Je vous le garantis, d’autant plus quand on travaille à plusieurs et qu’on veut corriger des conflicts.

Votre commit est fin prêt ! Quand vous allez lancerez la commande, vous obtiendrez ce résultat :

git commitIci, Git est prêt pour tout envoyer sur le serveur. Sachez qu’il est important de faire des commits régulièrement. En règle générale, à chaque fois que vous avez fini de développer une fonction – et qu’elle ne fait pas tout planter – vous devez faire un commit. C’est la meilleure façon de travailler et être le plus agile possible. Car cela vous permet d’avoir un très bon niveau de détails sur votre versionning.

L’étape finale consiste à faire un

git push origin master

C’est ce qui vous permet de pousser votre code sur le serveur NAS. J’ai rajouté origin master mais c’est uniquement pour votre premier commit. Par la suite, vous n’en aurez plus besoin. Vous obtenez finalement le résultat suivant :

git push

Pour faire simple, origin master vous permet de créer une première branche de votre projet. Imaginons que vous ayez une version de votre code pour un autre pays, vous pouvez créer une autre branche, ce qui vous permet d’être mieux organisé dans votre projet.

Par la suite, si vous n’avez qu’une seule branche, il vous suffit de faire un simple

git push

Et si une autre personne travaille sur le même projet que vous, et qu’elle a push du code, vous devez faire un

git pull

Afin de récupérer la dernière version du code.

N’hésitez surtout pas si vous rencontrez des difficultés, ou si vous avez besoin de plus d’informations sur certaines commandes, à le signaler dans les commentaires…

Sur le même thème :