29fév/122

Utiliser github avec Archlinux et sublime text 2 [noob]

2766154718601541

Cela fait très longtemps que je n'ai pas écrit d'articles, j'ai décidé de m'y remettre un peu.
Pour cela je vais vous faire part de mes découvertes et avancées dans mon workflow, et en ce moment je m'intéresse un peu plus à git et surtout github. Voyant beaucoup de projets intéressant sur cette plateforme je me suis dit qu'il fallait que je test.
Depuis un petit moment je test des framework css pour faire du responsive webdesign. Je suis tombé sur Foundation et j'ai trouvé un thème wordpress basé dessus ainsi que sur boilerplate : https://github.com/drewsymo/Foundation.
Comme vous pouvez le remarquer ce thème est hébergé sur github, ce qui tombe bien. Je vous ai parlé de LESS dans un autre article, et j'aimerais donner une bonne touche de LESS à ce thème.

Mais dans cet article il sera question de comment utilisé github de façon basique (j'apprends moi même). Cet article va me servir aussi de mémo personnel, c'est pourquoi j'aborde github avec Archlinux.

La doc utilisée principalement : http://help.github.com/linux-set-up-git/
Je vais adapté cette doc pour Archlinux au niveau de l'installation principalement, le reste étant pareil suivant les distributions.

Nous commençons donc par installer git et sa dépendance pour utiliser git-gui (vous n'êtes pas obliger de l'installer comme nous n'allons pas l'utiliser).
Je vous invite fortement à utiliser yaourt, qui est un outil qui rajoute des fonctionnalités à pacman : http://archlinux.fr/yaourt.
Bien sur si vous ne souaitez pas installer yaourt remplacez toutes les commandes yaourt par pacman, n'oubliez pas de passer en root dans ce cas pour installer des programmes ;).

yaourt -S git tk

Ensuite nous vérifier que nous n'avons pas de clés ssh, et ensuite en créer pour utiliser github.

cd ~/.ssh

si vous avez comme message
bash: cd: /home/baptarch/.ssh: Aucun fichier ou dossier de ce type
Cela veut dire que vous n'avez pas de clés.
Si vous en avez déjà, soit vous savez ce que vous faites et dans ce cas je me demande pourquoi vous êtes venu sur cet article, soit vous faites ce que la doc vous demande, c'est à dire faire un backup des clés existentes. je suppose que vous savez déjà faire si vous êtes sur archlinux (juste déplacer les fichiers dans un dossier de backup ^^)

Maintenant nous devons créer des clés ssh pour pouvoir se connecter ensuite à github. (ces clés peuvent servir pour autre choses bien sur, mais là il est question de les utiliser pour github 😉 )

bien entendu nous devons avoir un programme pour créer ces clés :

yaourt -S openssh

La création de clés se fait comme suit : (n'oubliez pas de changer d'adresse mail, celle-ci étant la mienne ^^)

ssh-keygen -t rsa -C "baptistecaquot@gmail.com"

Appuyez sur entrée lorsque l'on vous demande où mettre la clé, elle sera ainsi créée dans /home/votre_nom/.ssh/id_rsa il y aura aussi un id_rsa.pub de créé.
Ensuite vous avez une passphrase à rentrer, c'est comme un mot de passe mais en phrase ^^'. N'hésitez pas à utiliser des espaces, cela fonctionne. Bien entendu je vous encourage à mettre une phrase que vous pourrez vous rappelez facilement, et ne vous inquiétez pas avec linux on a un petit programme qui garde tout ça en tête : ssh-agent.

Maintenant que nous avons notre clé nous allons pouvoir l'indiquer à github pour qu'il puisse nous reconnaître.
Dans l'account settings de github, il faut aller dans SSH Keys, cliquer sur "add new ssh key".
Ouvrez votre clé id_rsa.pub avec gedit (ou autre, le principe est de copier la clé).
Collez la clé dans key (dans titre mettez ce que vous voulez, personnellement j'ai mis baptiste archlinux, ayant déjà une clé que j'utilise pour windows, je veux les distinguer)

Nous allons maintenant tester l'accès à github et voir si nous avons bien fait les étapes précédentes.

ssh -T git@github.com

A ce moment vous aurez "The authenticity of host 'github.com (207.97.227.239)' can't be established." cela veut juste dire qu'il ne connait pas github, dites yes et github sera ainsi dans les hôtes connus.
Votre passphrase vous sera demandez, et si tout se passe bien vous aurez le droit à un "Hi baptwit! You've successfully authenticated, but GitHub does not provide shell access." (avec bien sur le nom de votre compte à la place de baptwit).

Bon maintenant si vous avez fait comme moi pendant la rédaction de cet article, que vous vous êtes dit "je vais changer de passphrase" ou autre et que vous décidez alors de supprimer votre dossier .ssh afin de recommencer et que vous avez déjà fait vos clés, fait le test github, vous aurez surement ce message : "Agent admitted failure to sign using the key. Permission denied (publickey)."
Dans ce cas une fois que vous aurez changer la clé (ida_rsa.pub) dans github il vous suffit de faire ssh-add et tout reviendra dans l'ordre :) (on vous redemande la passphrase bien entendu)

Bon maintenant nous allons configurer git (bien entendu en changeant les infos, à moins que vous ne vouliez vous faire passer pour moi!) :

git config --global user.name "Baptiste Caquot"
git config --global user.email "baptistecaquot@gmail.com"

Ensuite configurez le token github (pour pouvoir utiliser des outils qui n'utilisent pas ssh pour se connecter à github, pour la suite cela ne sera pas très utile, mais au cas où vous souaitiez changer la façon dont vous utilisez github cela peut devenir utile, et comme ce n'est que deux petite ligne qui ne coûte rien, autant le faire de suite !) (pareil, changez l'user)

git config --global github.user baptwit
git config --global github.token votretoken

Bon maintenant nous allons passer aux choses sérieuses!

Commençons la création d'un "repository" ou "repo", un répertoire qui nous permettra d'acceuillir notre projet.
Ici rien de spécial concernant archlinux, tout ce que je vais écrire viens de http://help.github.com/create-a-repo/ et je vais juste résumer ici. N'hésitez pas à aller sur la doc si je ne suis pas assez compréhensible ^^.

Tout d'abord on fait un nouveau repo sur github ("new repositery" sur la page de votre profil).
On remplis les infos demandées, pour ma part je vais juste mettre test-blog.
Cela nous amène sur une page qui résume ce que l'on doit faire.
Vous pouvez passer puisque le but de cet article est de vous montrer comment faire.

Nous devons créer un dossier sur notre ordinateur pour accueillir le projet. Vous pouvez le faire où vous voulez, pour ma part j'ai décidé que je mettrais tous mes repo de github dans un dossier github. Dans ce dossier j'ai donc fait un dossier test-blog.
Avec la ligne de commande il faut vous placez dans votre dossier nouvellement créé.

cd chemin/de/votre/dossier

Une fois dans ce dossier, nous allons initialiser notre git afin de dire "ce dossier test-blog est un repo". Pour cela :

git init

ce qui nous donne :

Initialized empty Git repository in /home/baptarch/github/test-blog/.git/

Cela nous créé un dossier caché le .git qui contiendra toutes les infos git en rapport avec notre dossier test-blog.
Maintenant nous allons dire que ce dossier est lier à celui sur github :
git remote add origin git@github.com:baptwit/test-blog.git
(en changeant bien sur baptwit par votre username et test-blog par le nom de votre projet).

Nous allons maintenant créer un fichier README tout simple. Ce fichier sera affiché sur la page de votre projet en accueil (en dessous de la liste des fichiers). Vous pouvez faire une mise en page pour que github n'affiche pas du simple texte, les markups utilisés par github : https://github.com/github/markup
Vous créez comme vous souhaitez votre fichier README, la doc met un simple :

touch README

Ouvrez votre fichier et mettez y un peu de texte, si vous voulez continuer avec la ligne de commande :

nano README

Maintenant nous allons dire à git que le fichier README doit être pris en compte pour notre projet :

git add README

ensuite :

git commit README -m 'premier commit'

Cela dit que le fichier README a été modifié (bon ok c'est la 1ère fois qu'il est ajouté, mais ce sera la même commande plus tard) et permet d'associer ce commit un message explicatif (la c'est premier commit)
On envoie tout ça à l'origine, qui est le repo sur github.

git push origin master

premier commit

Mon 1er commit


Maintenant vous pouvez commencer à utiliser github, les commandes sont répertoriées ici http://help.github.com/git-cheat-sheets/ et bien entendu je vous invite à chercher de la doc la dessus, mais avec le peu de commande que l'on a vu on peut déjà s'occuper de son repo fraichement créé.

Si comme moi vous avez déjà un repo sur github, que vous l'aviez créé sur windows (ou ailleurs) et que vous comptez l'utiliser il va falloir le récupérer.
Pour cela rien de plus simple :

git clone git@github.com:baptwit/LESS-functions.git

Bien entendu vous changer l'username ainsi que le nom de votre projet 😉
Cette commande vous fera un nouveau dossier contenant tout votre projet, vous pourrez ensuite l'utiliser comme si vous veniez de le créer.

Pour faire un fork d'un projet, lorsque vous êtes sur la page d'un projet que vous souaitez forker, cliquez juste sur fork, cela mettra ce projet dans votre compte, vous pourrez ensuite faire un git clone pour l'avoir sur votre ordinateur.

Je vais vous montrer comment j'ai choisi de travailler avec git.
Beaucoup s'intéressent en ce moment à sublime text 2 et je fait partis de ces personnes.

Pour l'installer sur archlinux, rien de plus simple (merci à AUR) il suffit de faire :

yaourt -S sublime-text-dev

Cette fois yaourt est indispensable puisqu'il récupère sur AUR, ce que ne permet pas pacman, ou alors il faudra le faire manuellement.

Une fois sublime text 2 installé on va lui ajouter un système d'installation de plugin, pour se faire on utilise la doc ici.
Dans cette doc on nous demande d'ouvrir le terminal en faisant "ctrl + `", avec un clavier français pour le faire il faut appuyer sur ctrl + alt gr + la touche 7.
Dans ce terminal on recopie cette commande :

import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

Si cela ne fonctionne pas peut être que la méthode à changée et je vous invite à aller sur la documentation.

On redémarre sublime text 2, on appuie sur "ctrl + maj + p" et cela nous ouvre une boite de recherche de fonctions de sublime text 2, on cherche (en écrivant) la ligne package control : package install, on appuie sur entrée et on installe le plugin git qui aura pour but d'installer ce plugin.

Une fois que ceci est installé on à accès à git directement dans sublime text 2, on utilise la commande en ouvrant la recherche de fonctions (ctrl + maj + p) et on tape git + le nom de la commande git.

Plus d'infos concernant ce plugin peuvent se trouver sur le wiki du plugin : https://github.com/kemayo/sublime-text-2-git/wiki

Je m'en vais continuer à apprendre encore plus sur git et github, et je vais aussi continuer à "LESSisé" le thème wordpress dont je vous ai parlé. Je ferais un petit article une fois que j'aurais finis avec ça.

Si vous voyez des inexactitude dans cet article (je commence seulement à essayer github, il y a donc peut être) n'hésitez pas à m'en faire part dans les commentaires.

Commentaires (2) Trackbacks (0)
  1. Merci pour ce super tuto!!!
    J’avais tous le temps le message « Agent admitted failure to sign using the key. Permission denied (publickey). » et je ne comprenais pas pourquoi …
    Tu viens de me sauver la vie, mec 😉

  2. De rien, j’ai galéré un petit moment avant de tomber sur un forum qui expliquait la commande nécessaire pour réparer cela.
    Je me demande pourquoi ce n’est pas dans la faq ou dans la doc de github :-/


Laisser un commentaire


CommentLuv badge

Aucun trackbacks pour l'instant