Github
Sommaire
Git en quelques mots
Git est un logiciel de gestion de version qui permet de gérer une arborescence de fichiers tout en gardant un historique complet des différentes modifications effectuées. De ce point de vue, il offre les mêmes fonctionnalités que CVS ou Subversion.
Git se caractérise principalement par son aspect décentralisé. En effet, git utilise à la fois un dépôt local et un dépôt distant. Pour travailler, il faut dans un premier temps « forker » un dépôt distant. Ceci permet de récupérer l’ensemble des fichiers présents sur le dépôt distant ainsi que l’historique associé.
Une fois le dépôt distant « forker », on peut travailler en local tout comme on le ferait avec un gestionnaire de version classique. Il est ensuite possible de proposer sa contribution au dépôt distant (pull request).
Ce mode de fonctionnement permet de profiter d’un gestionnaire de version pour effectuer son développement en local et de proposer un ensemble de modifications cohérentes et fonctionnelles sur le dépôt distant.
Préparer son espace de travail sous « GitHub »
J’utilise « GitHub » pour héberger mes différents fichiers. La création du compte « GitHub » n’est pas détaillée dans ce billet. Cette étape ne présente aucune difficulté et n’est réalisée qu’une seule et unique fois. Seule la procédure d’échange de clefs est détaillée ici.
Générer un couple de clefs privée / publique
La génération des clefs privées et publiques se fait en tapant la commande suivante :
Lors de la génération, il vous sera demandé une « passphrase ». Il faut bien noter cette dernière car elle sera à nouveau demandée lors de la connexion à « GitHub ».
Si vous avez laissé les options par défaut, la clef se trouve dans le fichier « ~/.ssh/id_rsa.pub ».
Exporter sa clef vers « GitHub »
Suivre les étapes suivantes :
* se connecter sur « GitHub » avec votre compte ; * aller dans « settings » (icône en forme d’engrenage en haut à droite) ; * sélectionner dans le menu de gauche « SSH keys » ; * cliquer sur « Add SSH key » ; * donner un nom à la clef et recopier le contenu du fichier contenant la clef dans la zone de texte « Key ». Si vous avez laissé les options par défaut, la clef se trouve dans le fichier « ~/.ssh/id_rsa.pub »
Tester le bon fonctionnement de la clef
Dans un terminal, taper les commandes suivantes (cf. doc github) :
ssh -T git@github.com
La sortie doit ressembler au texte ci-dessous :
Hi yopland! You've successfully authenticated, but GitHub does not provide shell access.
Si le message fait référence à votre login, c’est gagné. Gestion des clefs avec « ssh-agent »
L’utilisation d’un agent, évite d’avoir à retaper la « passphrase » à chaque fois que l’on sollicite l’utilisation de la clé privée. Les clefs et les « passphrases » associées sont stockées en mémoire par l’agent et restituées selon les besoins.
Taper la commande suivante et renseigner la « passphrase » :
ssh-add
Tester le bon fonctionnement en essayant de se connecter sur le serveur. Il ne devrait pas être nécessaire de redonner la « passphrase ».
ssh -T git@github.com
Pour lister les clefs chargées par l’agent :
ssh-add -l
Pour supprimer de l’agent la clef stockée dans « ~/.ssh/id_rsa » :
ssh-add -d ~/.ssh/id_rsa
Commandes principales Dépôt local Initialiser un dépôt git en local
git init
Lister les fichiers gérés par git
git status
Ajouter un ou des fichiers au dépôt local
git add fichier git add '*.txt'
Renseigner son identité
Pour suivre les différentes modifications sur le serveur distant, il est nécessaire de renseigner son identité sur son dépôt.
Pour effectuer cette déclaration de manière globale (valable pour tous les dépôt locaux), taper les lignes suivantes :
git config --global user.email "you@example.com" git config --global user.name "Your Name"
Pour effectuer cette déclaration uniquement pour le dépôt en cours, taper les lignes suivantes :
git config user.email "you@example.com" git config user.name "Your Name"
Pousser les modifications effectuées vers le dépôt local (commit)
git commit -m "message"
Suivre les différentes actions
git log
Création d’un dépôt sur github
Afin de recevoir les différents fichiers de ce billet, je me suis créé un dépôt « try_git ». Cette étape se fait via l’interface d’administration de « GitHub ».
Afin d’héberger différents projets, il est tout à fait possible de créer plusieurs dépôt sur un même compte. Dépôt distant Déclarer un dépôt distant
Afin d’éviter d’avoir à saisir l’URL complète du dépôt, il est possible de créer un alias.
mon dépôt distant est hébergé sur « github » ; pour les tests le nom de mon dépôt distant est « try_git » ; le nom de mon compte est « yopland » ; la référence « locale » au dépôt distant est « origin ».
git remote add origin git@github.com:yopland/try_git.git
Il est maintenant possible d’utiliser « origin » en lieu et place de l’URL complète. Pousser les modifications locales vers le dépôt distant
nom sous lequel est référencé le dépôt distant : origin branche utilisée : master option « -u » : permet de sauvegarder les paramètres et ainsi ne pas avoir à les saisir à nouveau lors de la prochaine commande
git push -u origin master
Récupérer les modifications effectuées
Il est possible de récupérer les modifications effectuées sur le dépôt distant de deux manières différentes :
en effectuant une fusion directement sur l’espace de travail ; en stockant les données sur une nouvelle branche.
Récupérer les modifications effectuées sur le dépôt distant et fusionner les modifications sur notre espace de travail
git pull origin master
Récupérer les modifications effectuées sur le dépôt distant sans effectuer de fusion (les données seront stockées sous leur propre branche)
git fetch origin
Lister les dépôts distants
l’option « -v » permet de visualiser les urls associées à chaque nom court;
git remote -v
Autres commandes Récupérer les différences entre la copie locale et le dépôt
git diff HEAD
Récupérer les dernières modifications que l’on vient d’effectuer
git diff --staged
Cloner un dépot
Cloner un dépôt entier :
git clone url
Cloner une branche :
git clone -b branche url
Références
documentation git : http://git-scm.com/ un livre en français : http://git-scm.com/book/fr/v1 un très bon tutoriel : https://try.github.io/levels/1/challenges/1 le site de gitub : https://github.com utilisation de ssh : http://www.linux-france.org/prj/edu/archinet/systeme/ch13s03.html
Related posts:
Aide mémoire sur les commandes associées à Systemd XML : Manipulation avec xmllint et trang Lancer Open VPN sous SystemD Réduction automatique du bruit avec « Darktable » – Partie 1
aide mémoire gestionnaire de version git planet-libre tutoriel
Did you like this article? Share it with your friends! One Response to "Aide mémoire git"
WilliamLymn dit : 26 mars 2015 à 19 h 53 min
Enjoy your blog ) http://anmdcf7i.com my blog Répondre
Laisser un commentaire
Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *
Nom *
Adresse de contact *
Site web
Commentaire
Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <acronym title="">
