Et on monte encore d'un cran : git sur mon serveur local :
liens utiles pour cette partie :
https://www.sheevaboite.fr/articles/installer-serveur-git-auto-heberge-partie-1
http://git-scm.com/book/fr/v2/Git-sur-le-serveur-Mise-en-place-du-serveur
après avoir commencé à utiliser git sur ma machine, je souhaite maintenant déposer les sources sur un serveur de fichier pour en avoir une copie au chaud… et éventuellement partager ce projet.
sur le serveur (ubuntu, debian like) |
sur le(s) client(s) (ubuntu, debian like) |
Les lignes ci-dessous s'inspire largement du tutoriel sur sheevaboite.fr (cf. lien ci-dessus): installation :
création d'un utilisateur spécifique pour l'utilisation de git : Création du répertoire pour le(s) certificat(s):
Copie du certificat du developpeur 1 :
Création du fichier authorized_keys avec la clé publique du 1er développeur Création d'un dépôt : cd ~ |
installation
Génération des clés privée/publique pour l'accès au serveur
Copie de la clé publique sur le serveur
Extraction du dépôt vide créé sur le serveur
Se placer dans le répertoire du projet
Création d'un fichier de code source Ajout du fichier précédemment créé Configuration de git git config --global prenom.nom "p.nom@serveur_email.fr" Edition du fichier de config de git pour ajout des raccourcis (cf. tout haut de cet article)
Premier commit Synchronisation avec le serveur Création d'un second fichier source Ajout d'un second fichier git add test2.c Visualisation du log On se repositionne plus on crée un nouveau répertoire et on s'y positionne mkdir test Puis on récupère à nouveau le projet pour vérifier qu'on y retrouve ce qu'on vient de créer (test1.c et test2.c) git clone git@ vous devez retrouver votre dépôt copié sur votre machine ! … à part tous les fichiers et répertoires qui se trouvent dans .gitignore. Si vous souhaitez néanmoins que votre dépôt les inclus, il faut recourrir à git annex … ou bien les enlever de .gitignoreet donc les ajouter… en y ajoutant au besoin des attributs de fichier binaire : voir .gitattributes …à suivre…. |
Dans la pratique, on a généralement un projet existant qu'on veut déposer sur le serveur. On commence par créer le dépôt vide sur le serveur, comme ci-dessus : sudo mkdir depot_projet_existant.git
|
Si le projet existe bien, en revanche, il n'est pas associé à un dépôt distant. Le fichier .git/config ne doit pas contenir de [remote "origin"]. Pour créer ce lien, on tape :
et maintenant, on peut pousser notre projet dans le dépôt vide :
|
Et maintenant, nous sommes deux développeurs (ou 1 avec 2 machines, ça fait presque pareil):
PC développeur 1 qui travaille sur la branche master |
PC développeur 2 qui développe sur la branche future_version |
Rien de bien particulier ici, ce développeur fait ces commits en local puis de temps à autre un
Le développeur 1 doit maintenant aussi travailler sur la future_version
ce qui va récupérer sur son poste "la branche" future_version déposée par le développeur 2… j'ai mis des guillemets autour de la branche car elle n'est pas vraimment créée, donc pour la créer, on tape :
ou si conserve le même nom de branche (comme ci-dessus), alors on peut taper à la place:
C'est ce qui s'appelle une branche de suivi, et nous permet d'utiliser les commandes
|
au début, il faut récupérer le projet :
on crée la branche future_version :
on ajoute, on enlève des fichiers… bref, presque comme sur un nouveau projet, on commit, on tag… et on "push" la branche sur le serveur (et le(s) tag(s) éventuel(s)) :
Si ce développeur doit fair une modif sur la branche master, il se repositionne sur le "tronc"
puis, pour récupérer les modif faites par le developpeur 1:
et pour récupérer les tags ajoutés:
|