J’utilise Git au quotidien depuis une bonne dizaine d’années, principalement pour gérer mes scripts et mes fichiers de configuration. Jusqu’ici je me suis servi de la plateforme GitHub pour stocker mes projets. Mais vu que GitHub a été racheté par Microsoft il y a un petit moment déjà et que c’est un projet propriétaire, c’est bien de s’émanciper petit à petit, à plus forte raison lorsque vous pouvez faire la même chose – et bien plus encore – avec un équivalent libre. J’ai donc décidé de passer à GitLab pour mes projets.
Note pour les chipoteurs : Oui, je suis parfois un peu long à la détente, par simple flemme de changer mes habitudes pour les choses que j’utilise au quotidien.
Créer un projet
Une fois que l’on dispose d’un compte sur le portail GitLab, on peut créer un projet.
Voici par exemple un projet que j’ai transféré de GitHub vers GitLab.
- Créer un projet : New project > Project Name
- Project Name : OpenSUSE Leap KDE Setup
- Project URL : https://gitlab.com/kikinovak/
- Project slug : opensuse
- Project description : Post-installation setup script for OpenSUSE Leap KDE
- Visibility level : Public
- Cocher Initialize repository with a README
Supprimer un projet
Avant de faire quoi que ce soit avec un projet, c’est bien de savoir faire le ménage. La suppression d’un projet sur GitLab n’est pas très intuitive, et j’ai dû chercher un peu.
- Revenir à la page d’accueil
- Cliquer sur le projet que l’on souhaite supprimer
- Tout en bas dans le panneau à gauche, cliquer sur Settings
- Tout en bas dans la fenêtre principale, repérer la rubrique Advanced et cliquer sur Expand
- Là encore, descendre tout en bas de la page et cliquer sur Remove project
- Confirmer en saisissant le nom du projet
Sur la machine locale
Cloner un dépôt distant.
$ git clone https://gitlab.com/kikinovak/opensuse-setup Clonage dans 'opensuse'... warning: redirection vers https://gitlab.com/kikinovak/opensuse.git/ remote: Enumerating objects: 97, done. remote: Counting objects: 100% (97/97), done. remote: Compressing objects: 100% (89/89), done. remote: Total 97 (delta 1), reused 0 (delta 0), pack-reused 0 Dépaquetage des objets: 100% (97/97), fait.
Savoir d’où vient ce code.
$ cd opensuse/ $ git remote -v origin https://gitlab.com/kikinovak/opensuse (fetch) origin https://gitlab.com/kikinovak/opensuse (push)
Définir l’identité au niveau global.
$ git config --global user.name "Nicolas Kovacs" $ git config --global user.email "info@microlinux.fr"
Git crée un fichier ~/.gitconfig
contenant les informations fournies.
$ cat ~/.gitconfig [user] name = Nicolas Kovacs email = info@microlinux.fr
CentOS 7 et GitLab
Sur un serveur sous CentOS 7, on peut se retrouver confronté au problème suivant.
$ git clone https://gitlab.com/kikinovak/centos Cloning into 'centos'... error: RPC failed; result=22, HTTP code = 404 fatal: The remote end hung up unexpectedly
Ce bug prohibitif n’est toujours pas résolu. Il exaspère pas mal de monde pour la simple raison qu’il est mal documenté. Pour le résoudre, il suffit d’ajouter le suffixe « .git
» à l’URL du dépôt.
$ git clone https://gitlab.com/kikinovak/centos.git Cloning into 'centos'... remote: Enumerating objects: 208, done. remote: Counting objects: 100% (208/208), done. remote: Compressing objects: 100% (123/123), done. remote: Total 208 (delta 88), reused 190 (delta 78), pack-reused 0 Receiving objects: 100% (208/208), 33.40 KiB | 0 bytes/s, done. Resolving deltas: 100% (88/88), done.
Authentification par clé SSH
Pour éviter d’avoir à taper son nom d’utilisateur et son mot de passe, on peut très bien s’authentifier avec sa clé SSH. La génération d’une paire de clés SSH est décrite en détail dans cet article.
Copier la clé publique vers le presse-papier.
$ xclip -sel clip < ~/.ssh/id_rsa.pub
Une fois qu’on s’est connecté au site de Gitlab, cliquer sur l’avatar du compte en haut à droite de la page et ouvrir la rubrique Settings > SSH Keys. Copier la clé publique dans le champ prévu à cet effet, renseigner le nom de la machine et la date d’expiration de la clé et cliquer sur Add Key.
Tester la connexion à Gitlab.
$ ssh -T git@gitlab.com Welcome to GitLab, @kikinovak!
Pour le clonage des dépôts, il faudra s’y prendre un peu différemment.
$ git clone git@gitlab.com/kikinovak/opensuse
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
1 commentaire
Buzut · 28 mars 2020 à 7 h 45 min
J’allais poser la question afin de savoir si c’était la version SaaS ou community mais je crois comprendre qu’il s’agit de la SaaS, ce qui en effet correspond plus à un remplaçant de Github.
Mon seul problème avec Gitlab est que pour les projets Open Source, y’a quand même moins de visibilité.
Les commentaires sont fermés.