{"id":383,"date":"2026-05-06T11:23:50","date_gmt":"2026-05-06T09:23:50","guid":{"rendered":"https:\/\/eryann.fr\/?p=383"},"modified":"2026-05-06T11:23:51","modified_gmt":"2026-05-06T09:23:51","slug":"fiche-gitlab-et-git","status":"publish","type":"post","link":"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/","title":{"rendered":"Fiche gitlab et git"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n\n\n\n<p>Dans un projet de BTS CIEL ou SIO, tu dois savoir organiser ton code, suivre tes modifications, collaborer avec d\u2019autres personnes et retrouver rapidement l\u2019historique d\u2019un travail. Git r\u00e9pond \u00e0 ce besoin en assurant le contr\u00f4le de version. GitLab ajoute une interface web pour h\u00e9berger ton d\u00e9p\u00f4t, g\u00e9rer les branches, suivre les t\u00e2ches, relire le code et pr\u00e9parer plus tard de l\u2019int\u00e9gration continue.<\/p>\n\n\n\n<p>GitLab ne remplace pas Git. Git fonctionne sur ton poste. GitLab h\u00e9berge le d\u00e9p\u00f4t distant et facilite le travail en \u00e9quipe. Dans GitLab, un d\u00e9p\u00f4t appartient toujours \u00e0 un projet. Le projet regroupe le code, les param\u00e8tres, les droits, les tickets, les merge requests et \u00e9ventuellement les pipelines CI\/CD.<\/p>\n\n\n\n<p>L\u2019objectif de cette fiche consiste \u00e0 te rendre autonome sur un premier usage propre de GitLab : cr\u00e9er un projet depuis l\u2019interface web, le r\u00e9cup\u00e9rer sur ton PC, envoyer tes premiers fichiers, comprendre les commandes Git essentielles et mettre en place un fichier <code>.gitignore<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Sommaire<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Introduction<\/li>\n\n\n\n<li>Sommaire<\/li>\n\n\n\n<li>Synth\u00e8se Markdown pour ta fiche bristol<\/li>\n\n\n\n<li>Principe g\u00e9n\u00e9ral : Git, GitLab, d\u00e9p\u00f4t local et d\u00e9p\u00f4t distant<\/li>\n\n\n\n<li>Installation de Git sur Debian ou Ubuntu<\/li>\n\n\n\n<li>Configuration initiale de Git sur ton PC<\/li>\n\n\n\n<li>Cr\u00e9ation du projet GitLab depuis l\u2019interface web<\/li>\n\n\n\n<li>Initialisation du projet sur le PC<\/li>\n\n\n\n<li>Arborescence recommand\u00e9e d\u2019un petit projet<\/li>\n\n\n\n<li>Fichier <code>.gitignore<\/code> : r\u00f4le, emplacement et exemples<\/li>\n\n\n\n<li>Configuration compl\u00e8te du fichier <code>.gitignore<\/code><\/li>\n\n\n\n<li>Commandes Git de base \u00e0 conna\u00eetre<\/li>\n\n\n\n<li>Gestion des branches et merge requests<\/li>\n\n\n\n<li>S\u00e9curit\u00e9, droits d\u2019acc\u00e8s, SSH et pare-feu<\/li>\n\n\n\n<li>Exemples concrets<\/li>\n\n\n\n<li>Commandes de v\u00e9rification et d\u00e9pannage<\/li>\n\n\n\n<li>Logs et diagnostic<\/li>\n\n\n\n<li>Erreurs fr\u00e9quentes<\/li>\n\n\n\n<li>Conclusion orient\u00e9e bonnes pratiques<\/li>\n\n\n\n<li>Pour aller plus loin<\/li>\n\n\n\n<li>Liens vers les sites officiels, MOOC et contenus p\u00e9dagogiques<\/li>\n\n\n\n<li>Propositions de TP<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">3. Synth\u00e8se Markdown pour ta fiche bristol<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Fiche bristol \u2014 GitLab et Git<br><br>## Objectif<br>Git suit les versions du projet sur le PC.<br>GitLab h\u00e9berge le d\u00e9p\u00f4t distant et facilite le travail en \u00e9quipe.<br><br>## Installation Debian\/Ubuntu<br>sudo apt update<br>sudo apt install git<br><br>## Configuration utilisateur<br>git config --global user.name \"Pr\u00e9nom Nom\"<br>git config --global user.email \"prenom.nom@example.com\"<br>git config --global init.defaultBranch main<br><br>## V\u00e9rification<br>git --version<br>git config --global --list<br><br>## Cas 1 : r\u00e9cup\u00e9rer un projet cr\u00e9\u00e9 sur GitLab<br>git clone git@gitlab.com:utilisateur\/mon-projet.git<br>cd mon-projet<br><br>## Cas 2 : initialiser un projet local existant<br>cd mon-projet<br>git init<br>git branch -M main<br>git remote add origin git@gitlab.com:utilisateur\/mon-projet.git<br><br>## Cycle de travail classique<br>git status<br>git add .<br>git commit -m \"Ajout de la premi\u00e8re version\"<br>git push -u origin main<br><br>## Mettre \u00e0 jour le d\u00e9p\u00f4t local<br>git pull<br><br>## Cr\u00e9er une branche<br>git switch -c feature\/page-accueil<br><br>## Envoyer une branche vers GitLab<br>git push -u origin feature\/page-accueil<br><br>## Voir l\u2019historique<br>git log --oneline --graph --decorate --all<br><br>## .gitignore<br>Le fichier .gitignore indique \u00e0 Git les fichiers \u00e0 ne pas suivre :<br>- caches<br>- fichiers temporaires<br>- secrets<br>- d\u00e9pendances g\u00e9n\u00e9r\u00e9es<br>- fichiers propres \u00e0 l\u2019\u00e9diteur<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Principe g\u00e9n\u00e9ral : Git, GitLab, d\u00e9p\u00f4t local et d\u00e9p\u00f4t distant<\/h2>\n\n\n\n<p>Git fonctionne comme un carnet d\u2019historique technique. \u00c0 chaque \u00e9tape importante, tu cr\u00e9es un commit. Ce commit contient une description courte et l\u2019\u00e9tat des fichiers suivis par Git.<\/p>\n\n\n\n<p>GitLab h\u00e9berge une copie distante du projet. Cette copie distante permet de sauvegarder le travail, de collaborer et de centraliser les branches. La documentation GitLab rappelle que tu peux cr\u00e9er un projet depuis l\u2019interface web ou envoyer un d\u00e9p\u00f4t local avec <code>git push<\/code>.<\/p>\n\n\n\n<p>Tu manipules donc g\u00e9n\u00e9ralement deux espaces :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>le d\u00e9p\u00f4t local : le dossier du projet sur ton PC ;<\/li>\n\n\n\n<li>le d\u00e9p\u00f4t distant : le projet h\u00e9berg\u00e9 sur GitLab.<\/li>\n<\/ul>\n\n\n\n<p>Quand tu modifies ton code, Git ne l\u2019envoie pas automatiquement sur GitLab. Tu dois ajouter les fichiers \u00e0 l\u2019index, cr\u00e9er un commit, puis pousser ce commit vers le d\u00e9p\u00f4t distant. GitLab explique ce cycle dans sa documentation sur l\u2019ajout, le commit et le push.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Installation de Git sur Debian ou Ubuntu<\/h2>\n\n\n\n<p>Sur Debian ou Ubuntu, tu installes Git avec <code>apt<\/code>. Cette m\u00e9thode reste la plus simple pour un poste \u00e9tudiant ou une VM de lab. Le site officiel de Git indique que les distributions Debian\/Ubuntu utilisent le gestionnaire de paquets pour installer Git.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update<br>sudo apt install git<\/code><\/pre>\n\n\n\n<p>La commande <code>sudo apt update<\/code> met \u00e0 jour la liste locale des paquets disponibles. Elle ne met pas encore \u00e0 jour les logiciels install\u00e9s. Elle permet simplement \u00e0 ton syst\u00e8me de conna\u00eetre les versions disponibles dans les d\u00e9p\u00f4ts configur\u00e9s.<\/p>\n\n\n\n<p>La commande <code>sudo apt install git<\/code> installe Git et ses d\u00e9pendances. Le paquet <code>git<\/code> suffit pour les usages classiques : clone, commit, push, pull, branches et historique.<\/p>\n\n\n\n<p>Tu peux ensuite v\u00e9rifier l\u2019installation.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git --version<\/code><\/pre>\n\n\n\n<p>Cette commande affiche la version de Git install\u00e9e. Elle confirme que le binaire <code>git<\/code> existe bien dans le syst\u00e8me.<\/p>\n\n\n\n<p>Sur un poste Debian\/Ubuntu, tu n\u2019as pas besoin d\u2019installer GitLab sur ton PC pour utiliser GitLab.com ou un GitLab d\u2019\u00e9tablissement. Tu utilises Git en local et tu \u00e9changes avec GitLab via HTTPS ou SSH.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Configuration initiale de Git sur ton PC<\/h2>\n\n\n\n<p>Avant le premier commit, tu dois configurer ton nom et ton adresse e-mail. Git inscrit ces informations dans l\u2019historique des commits. Cette configuration ne cr\u00e9e pas de compte GitLab. Elle identifie simplement l\u2019auteur des commits sur ton poste.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git config --global user.name \"Pr\u00e9nom Nom\"<br>git config --global user.email \"prenom.nom@example.com\"<br>git config --global init.defaultBranch main<\/code><\/pre>\n\n\n\n<p>La commande <code>git config<\/code> modifie les param\u00e8tres Git.<\/p>\n\n\n\n<p>L\u2019option <code>--global<\/code> applique le r\u00e9glage \u00e0 ton utilisateur Linux. Git stocke alors ces param\u00e8tres dans le fichier <code>~\/.gitconfig<\/code>.<\/p>\n\n\n\n<p>Le param\u00e8tre <code>user.name<\/code> d\u00e9finit le nom affich\u00e9 dans l\u2019historique des commits.<\/p>\n\n\n\n<p>Le param\u00e8tre <code>user.email<\/code> d\u00e9finit l\u2019adresse e-mail associ\u00e9e aux commits. Utilise de pr\u00e9f\u00e9rence la m\u00eame adresse que celle de ton compte GitLab.<\/p>\n\n\n\n<p>Le param\u00e8tre <code>init.defaultBranch main<\/code> indique \u00e0 Git de cr\u00e9er par d\u00e9faut une branche principale appel\u00e9e <code>main<\/code> lors d\u2019un <code>git init<\/code>.<\/p>\n\n\n\n<p>Tu peux v\u00e9rifier la configuration.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git config --global --list<\/code><\/pre>\n\n\n\n<p>Cette commande affiche les param\u00e8tres Git globaux. L\u2019option <code>--list<\/code> demande \u00e0 Git de lister les cl\u00e9s configur\u00e9es.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Cr\u00e9ation du projet GitLab depuis l\u2019interface web<\/h2>\n\n\n\n<p>Commence par cr\u00e9er le projet dans GitLab. Cette m\u00e9thode reste tr\u00e8s p\u00e9dagogique, car tu vois clairement o\u00f9 se situe le d\u00e9p\u00f4t distant.<\/p>\n\n\n\n<p>Dans l\u2019interface GitLab :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Connecte-toi \u00e0 GitLab.<\/li>\n\n\n\n<li>Clique sur <code>Create new<\/code>.<\/li>\n\n\n\n<li>Choisis <code>New project\/repository<\/code>.<\/li>\n\n\n\n<li>S\u00e9lectionne <code>Create blank project<\/code>.<\/li>\n\n\n\n<li>Renseigne le nom du projet, par exemple <code>bts-gitlab-demo<\/code>.<\/li>\n\n\n\n<li>V\u00e9rifie le slug du projet, par exemple <code>bts-gitlab-demo<\/code>.<\/li>\n\n\n\n<li>Choisis la visibilit\u00e9 :\n<ul class=\"wp-block-list\">\n<li><code>Private<\/code> pour un projet personnel ou scolaire ;<\/li>\n\n\n\n<li><code>Internal<\/code> seulement dans une instance GitLab interne ;<\/li>\n\n\n\n<li><code>Public<\/code> uniquement si le contenu peut \u00eatre visible par tous.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Coche \u00e9ventuellement <code>Initialize repository with a README<\/code>.<\/li>\n\n\n\n<li>Ajoute un template <code>.gitignore<\/code> si GitLab te le propose et si ton langage correspond.<\/li>\n\n\n\n<li>Clique sur <code>Create project<\/code>.<\/li>\n<\/ol>\n\n\n\n<p>GitLab documente cette cr\u00e9ation de projet depuis l\u2019interface web, avec les \u00e9tapes de cr\u00e9ation d\u2019un projet vide ou depuis un mod\u00e8le.<\/p>\n\n\n\n<p>Pour un premier TP, coche <code>Initialize repository with a README<\/code>. GitLab cr\u00e9e alors un premier fichier <code>README.md<\/code>. Ce choix simplifie le clonage, car le d\u00e9p\u00f4t distant n\u2019est pas vide.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. Initialisation du projet sur le PC<\/h2>\n\n\n\n<p>Tu as deux cas fr\u00e9quents.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">8.1. Cas recommand\u00e9 pour d\u00e9buter : cloner le projet cr\u00e9\u00e9 sur GitLab<\/h3>\n\n\n\n<p>Apr\u00e8s la cr\u00e9ation du projet, GitLab affiche une adresse de clonage. Privil\u00e9gie SSH si tu as configur\u00e9 une cl\u00e9 SSH. Sinon, tu peux utiliser HTTPS.<\/p>\n\n\n\n<p>Exemple avec SSH :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone git@gitlab.com:utilisateur\/bts-gitlab-demo.git<br>cd bts-gitlab-demo<\/code><\/pre>\n\n\n\n<p>La commande <code>git clone<\/code> t\u00e9l\u00e9charge le d\u00e9p\u00f4t distant sur ton PC. Elle cr\u00e9e un dossier local, r\u00e9cup\u00e8re l\u2019historique et configure automatiquement le lien vers GitLab.<\/p>\n\n\n\n<p>La commande <code>cd bts-gitlab-demo<\/code> entre dans le dossier du projet.<\/p>\n\n\n\n<p>Tu peux v\u00e9rifier le d\u00e9p\u00f4t distant.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git remote -v<\/code><\/pre>\n\n\n\n<p>La commande <code>git remote -v<\/code> affiche les d\u00e9p\u00f4ts distants connus. Le nom <code>origin<\/code> d\u00e9signe g\u00e9n\u00e9ralement le d\u00e9p\u00f4t GitLab principal. L\u2019option <code>-v<\/code> affiche les URL utilis\u00e9es pour lire et \u00e9crire.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">8.2. Cas d\u2019un dossier local d\u00e9j\u00e0 existant<\/h3>\n\n\n\n<p>Tu peux aussi partir d\u2019un dossier d\u00e9j\u00e0 pr\u00e9sent sur ton PC.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir bts-gitlab-demo<br>cd bts-gitlab-demo<br>git init<br>git branch -M main<br>git remote add origin git@gitlab.com:utilisateur\/bts-gitlab-demo.git<\/code><\/pre>\n\n\n\n<p>La commande <code>mkdir bts-gitlab-demo<\/code> cr\u00e9e un nouveau dossier.<\/p>\n\n\n\n<p>La commande <code>cd bts-gitlab-demo<\/code> te place dans ce dossier.<\/p>\n\n\n\n<p>La commande <code>git init<\/code> transforme ce dossier en d\u00e9p\u00f4t Git local. Git cr\u00e9e alors le dossier cach\u00e9 <code>.git<\/code>.<\/p>\n\n\n\n<p>La commande <code>git branch -M main<\/code> renomme la branche courante en <code>main<\/code>. L\u2019option <code>-M<\/code> force le renommage si n\u00e9cessaire.<\/p>\n\n\n\n<p>La commande <code>git remote add origin ...<\/code> ajoute le d\u00e9p\u00f4t distant GitLab. Le nom <code>origin<\/code> reste une convention tr\u00e8s courante.<\/p>\n\n\n\n<p>Tu peux ensuite cr\u00e9er un premier fichier.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"# BTS GitLab Demo\" &gt; README.md<br>git status<br>git add README.md<br>git commit -m \"Ajout du README initial\"<br>git push -u origin main<\/code><\/pre>\n\n\n\n<p>La commande <code>echo \"# BTS GitLab Demo\" &gt; README.md<\/code> cr\u00e9e un fichier Markdown simple.<\/p>\n\n\n\n<p>La commande <code>git status<\/code> affiche l\u2019\u00e9tat du d\u00e9p\u00f4t : fichiers modifi\u00e9s, fichiers non suivis, branche courante.<\/p>\n\n\n\n<p>La commande <code>git add README.md<\/code> ajoute le fichier \u00e0 l\u2019index. Git pr\u00e9pare alors ce fichier pour le prochain commit.<\/p>\n\n\n\n<p>La commande <code>git commit -m \"Ajout du README initial\"<\/code> cr\u00e9e un commit avec un message. L\u2019option <code>-m<\/code> permet d\u2019\u00e9crire le message directement dans la commande.<\/p>\n\n\n\n<p>La commande <code>git push -u origin main<\/code> envoie la branche <code>main<\/code> vers GitLab. L\u2019option <code>-u<\/code> associe la branche locale \u00e0 la branche distante. Apr\u00e8s ce premier push, un simple <code>git push<\/code> suffit g\u00e9n\u00e9ralement.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. Arborescence recommand\u00e9e d\u2019un petit projet<\/h2>\n\n\n\n<p>Voici une arborescence simple pour un projet de cours, de script ou de mini-application.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bts-gitlab-demo\/<br>\u251c\u2500\u2500 .git\/<br>\u251c\u2500\u2500 .gitignore<br>\u251c\u2500\u2500 README.md<br>\u251c\u2500\u2500 docs\/<br>\u2502   \u2514\u2500\u2500 installation.md<br>\u251c\u2500\u2500 src\/<br>\u2502   \u2514\u2500\u2500 main.py<br>\u251c\u2500\u2500 tests\/<br>\u2502   \u2514\u2500\u2500 test_main.py<br>\u2514\u2500\u2500 scripts\/<br>    \u2514\u2500\u2500 demo.sh<\/code><\/pre>\n\n\n\n<p>Le dossier <code>.git\/<\/code> contient l\u2019historique local du d\u00e9p\u00f4t. Tu ne le modifies jamais \u00e0 la main.<\/p>\n\n\n\n<p>Le fichier <code>.gitignore<\/code> liste les fichiers que Git doit ignorer.<\/p>\n\n\n\n<p>Le fichier <code>README.md<\/code> pr\u00e9sente le projet, l\u2019installation, l\u2019usage et les commandes utiles.<\/p>\n\n\n\n<p>Le dossier <code>docs\/<\/code> contient la documentation.<\/p>\n\n\n\n<p>Le dossier <code>src\/<\/code> contient le code source.<\/p>\n\n\n\n<p>Le dossier <code>tests\/<\/code> contient les tests.<\/p>\n\n\n\n<p>Le dossier <code>scripts\/<\/code> contient les scripts utiles au projet.<\/p>\n\n\n\n<p>Cette organisation reste simple, lisible et adapt\u00e9e \u00e0 un projet BTS.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10. Fichier <code>.gitignore<\/code> : r\u00f4le, emplacement et exemples<\/h2>\n\n\n\n<p>Le fichier <code>.gitignore<\/code> sert \u00e0 \u00e9viter d\u2019envoyer dans Git des fichiers inutiles ou sensibles. La documentation officielle de Git pr\u00e9cise qu\u2019un fichier <code>.gitignore<\/code> d\u00e9finit des fichiers volontairement non suivis, mais qu\u2019il ne s\u2019applique pas aux fichiers d\u00e9j\u00e0 suivis par Git.<\/p>\n\n\n\n<p>Tu places g\u00e9n\u00e9ralement <code>.gitignore<\/code> \u00e0 la racine du projet.<\/p>\n\n\n\n<p>Exemples de fichiers \u00e0 ignorer :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>fichiers temporaires de l\u2019\u00e9diteur ;<\/li>\n\n\n\n<li>caches Python ;<\/li>\n\n\n\n<li>dossier <code>node_modules\/<\/code> ;<\/li>\n\n\n\n<li>fichiers <code>.env<\/code> contenant des secrets ;<\/li>\n\n\n\n<li>fichiers de logs locaux ;<\/li>\n\n\n\n<li>archives g\u00e9n\u00e9r\u00e9es ;<\/li>\n\n\n\n<li>r\u00e9pertoires de build.<\/li>\n<\/ul>\n\n\n\n<p>Attention : <code>.gitignore<\/code> ne prot\u00e8ge pas un secret d\u00e9j\u00e0 envoy\u00e9 dans Git. Si tu as d\u00e9j\u00e0 commit\u00e9 un mot de passe, tu dois le r\u00e9voquer et nettoyer l\u2019historique si n\u00e9cessaire.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">11. Configuration compl\u00e8te du fichier <code>.gitignore<\/code><\/h2>\n\n\n\n<p>Ce bloc propose un fichier <code>.gitignore<\/code> complet et adapt\u00e9 \u00e0 un projet p\u00e9dagogique Debian\/Ubuntu avec scripts, Python, Node.js \u00e9ventuel et documentation. Tu peux le placer dans un bloc de code WordPress.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># =====================================================<br># .gitignore \u2014 projet GitLab \/ BTS CIEL-SIO<br># Emplacement recommand\u00e9 : racine du projet<br># Exemple : \/home\/etudiant\/projets\/bts-gitlab-demo\/.gitignore<br># =====================================================<br><br># -----------------------------------------------------<br># 1. Syst\u00e8me d'exploitation<br># -----------------------------------------------------<br>.DS_Store<br>Thumbs.db<br>desktop.ini<br><br># -----------------------------------------------------<br># 2. \u00c9diteurs et IDE<br># -----------------------------------------------------<br>.vscode\/<br>.idea\/<br>*.swp<br>*.swo<br>*~<br><br># -----------------------------------------------------<br># 3. Python<br># -----------------------------------------------------<br>__pycache__\/<br>*.py&#91;cod]<br>*.pyo<br>*.pyd<br>.venv\/<br>venv\/<br>env\/<br>pip-wheel-metadata\/<br>.pytest_cache\/<br>.coverage<br>htmlcov\/<br><br># -----------------------------------------------------<br># 4. Node.js \/ JavaScript<br># -----------------------------------------------------<br>node_modules\/<br>npm-debug.log*<br>yarn-debug.log*<br>yarn-error.log*<br>dist\/<br>build\/<br><br># -----------------------------------------------------<br># 5. Variables d'environnement et secrets<br># -----------------------------------------------------<br>.env<br>.env.*<br>!.env.example<br>secrets\/<br>*.key<br>*.pem<br>*.p12<br>*.crt<br><br># -----------------------------------------------------<br># 6. Logs locaux<br># -----------------------------------------------------<br>logs\/<br>*.log<br><br># -----------------------------------------------------<br># 7. Archives et fichiers g\u00e9n\u00e9r\u00e9s<br># -----------------------------------------------------<br>*.zip<br>*.tar<br>*.tar.gz<br>*.tgz<br>*.7z<br>*.bak<br>*.tmp<br><br># -----------------------------------------------------<br># 8. Fichiers de bases de donn\u00e9es locales<br># -----------------------------------------------------<br>*.sqlite<br>*.sqlite3<br>*.db<br><br># -----------------------------------------------------<br># 9. WordPress local \u00e9ventuel<br># -----------------------------------------------------<br>wp-config.php<br>wp-content\/uploads\/<br>wp-content\/cache\/<\/code><\/pre>\n\n\n\n<p>La ligne <code>.env<\/code> ignore les fichiers de variables d\u2019environnement. Ces fichiers contiennent souvent des mots de passe, des tokens ou des URL internes.<\/p>\n\n\n\n<p>La ligne <code>!.env.example<\/code> force Git \u00e0 suivre un fichier d\u2019exemple. Tu peux y mettre les noms des variables sans les vraies valeurs.<\/p>\n\n\n\n<p>La ligne <code>node_modules\/<\/code> ignore les d\u00e9pendances Node.js. Tu ne dois pas versionner ce dossier, car tu peux le reconstruire avec <code>npm install<\/code>.<\/p>\n\n\n\n<p>La ligne <code>__pycache__\/<\/code> ignore le cache Python g\u00e9n\u00e9r\u00e9 automatiquement.<\/p>\n\n\n\n<p>La ligne <code>wp-config.php<\/code> prot\u00e8ge un fichier WordPress qui contient les acc\u00e8s \u00e0 la base de donn\u00e9es.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">12. Commandes Git de base \u00e0 conna\u00eetre<\/h2>\n\n\n\n<p>GitLab maintient une page de r\u00e9f\u00e9rence sur les commandes Git courantes. Cette page couvre les usages essentiels comme les changements, les branches, les commits et l\u2019historique.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12.1. Voir l\u2019\u00e9tat du d\u00e9p\u00f4t<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git status<\/code><\/pre>\n\n\n\n<p>Cette commande affiche les fichiers modifi\u00e9s, les fichiers ajout\u00e9s \u00e0 l\u2019index et les fichiers non suivis. Utilise-la tr\u00e8s souvent. Elle \u00e9vite beaucoup d\u2019erreurs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12.2. Ajouter un fichier pr\u00e9cis<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git add README.md<\/code><\/pre>\n\n\n\n<p>La commande <code>git add<\/code> place un fichier dans l\u2019index. Git prendra ce fichier en compte dans le prochain commit.<\/p>\n\n\n\n<p>Tu peux remplacer <code>README.md<\/code> par un autre chemin, par exemple <code>src\/main.py<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12.3. Ajouter tous les fichiers modifi\u00e9s<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git add .<\/code><\/pre>\n\n\n\n<p>Le point <code>.<\/code> d\u00e9signe le dossier courant. Cette commande ajoute tous les fichiers modifi\u00e9s ou nouveaux sous ce dossier.<\/p>\n\n\n\n<p>Utilise-la avec prudence. V\u00e9rifie toujours avec <code>git status<\/code> avant de cr\u00e9er le commit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12.4. Cr\u00e9er un commit<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git commit -m \"Ajout de la structure initiale du projet\"<\/code><\/pre>\n\n\n\n<p>La commande <code>git commit<\/code> enregistre une version du projet dans l\u2019historique local.<\/p>\n\n\n\n<p>L\u2019option <code>-m<\/code> permet d\u2019\u00e9crire le message du commit directement. Le message doit expliquer ce que tu as chang\u00e9.<\/p>\n\n\n\n<p>Un bon message reste court et pr\u00e9cis. Par exemple : <code>Ajout du .gitignore Python<\/code> ou <code>Correction du script de sauvegarde<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12.5. Envoyer les commits vers GitLab<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git push<\/code><\/pre>\n\n\n\n<p>La commande <code>git push<\/code> envoie tes commits locaux vers le d\u00e9p\u00f4t distant GitLab.<\/p>\n\n\n\n<p>Lors du premier envoi d\u2019une branche, tu peux utiliser :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git push -u origin main<\/code><\/pre>\n\n\n\n<p>L\u2019option <code>-u<\/code> configure le suivi entre la branche locale et la branche distante. Ensuite, <code>git push<\/code> suffit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12.6. R\u00e9cup\u00e9rer les changements depuis GitLab<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git pull<\/code><\/pre>\n\n\n\n<p>La commande <code>git pull<\/code> r\u00e9cup\u00e8re les changements distants et les int\u00e8gre dans ta branche locale.<\/p>\n\n\n\n<p>Tu l\u2019utilises quand un coll\u00e8gue a pouss\u00e9 du code ou quand tu travailles sur plusieurs postes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12.7. Voir l\u2019historique<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git log --oneline --graph --decorate --all<\/code><\/pre>\n\n\n\n<p>La commande <code>git log<\/code> affiche l\u2019historique.<\/p>\n\n\n\n<p>L\u2019option <code>--oneline<\/code> affiche chaque commit sur une ligne.<\/p>\n\n\n\n<p>L\u2019option <code>--graph<\/code> montre les branches sous forme graphique dans le terminal.<\/p>\n\n\n\n<p>L\u2019option <code>--decorate<\/code> affiche les noms de branches et de tags.<\/p>\n\n\n\n<p>L\u2019option <code>--all<\/code> affiche toutes les branches connues.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12.8. Voir les diff\u00e9rences avant commit<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git diff<\/code><\/pre>\n\n\n\n<p>Cette commande affiche les diff\u00e9rences entre les fichiers modifi\u00e9s et le dernier commit.<\/p>\n\n\n\n<p>Pour voir les diff\u00e9rences d\u00e9j\u00e0 ajout\u00e9es \u00e0 l\u2019index, utilise :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git diff --staged<\/code><\/pre>\n\n\n\n<p>L\u2019option <code>--staged<\/code> indique \u00e0 Git de comparer ce qui se trouve dans l\u2019index avec le dernier commit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12.9. Retirer un fichier de l\u2019index sans le supprimer<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git restore --staged fichier.txt<\/code><\/pre>\n\n\n\n<p>Cette commande enl\u00e8ve <code>fichier.txt<\/code> de l\u2019index. Elle ne supprime pas le fichier du disque.<\/p>\n\n\n\n<p>Tu l\u2019utilises quand tu as fait un <code>git add<\/code> trop large.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">12.10. Annuler une modification locale non commit\u00e9e<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git restore fichier.txt<\/code><\/pre>\n\n\n\n<p>Cette commande remet <code>fichier.txt<\/code> dans l\u2019\u00e9tat du dernier commit.<\/p>\n\n\n\n<p>Attention : elle supprime tes modifications locales sur ce fichier. Utilise <code>git diff<\/code> avant.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">13. Gestion des branches et merge requests<\/h2>\n\n\n\n<p>Une branche permet de travailler sur une \u00e9volution sans modifier directement la branche principale <code>main<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">13.1. Cr\u00e9er une branche<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git switch -c feature\/page-accueil<\/code><\/pre>\n\n\n\n<p>La commande <code>git switch<\/code> change de branche.<\/p>\n\n\n\n<p>L\u2019option <code>-c<\/code> cr\u00e9e une nouvelle branche et bascule dessus.<\/p>\n\n\n\n<p>Le nom <code>feature\/page-accueil<\/code> indique que la branche correspond \u00e0 une nouvelle fonctionnalit\u00e9.<\/p>\n\n\n\n<p>Tu peux aussi rencontrer l\u2019ancienne commande :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git checkout -b feature\/page-accueil<\/code><\/pre>\n\n\n\n<p>Elle fonctionne encore, mais <code>git switch<\/code> rend l\u2019intention plus claire pour d\u00e9buter.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">13.2. Envoyer une branche vers GitLab<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>git push -u origin feature\/page-accueil<\/code><\/pre>\n\n\n\n<p>Cette commande pousse la branche vers GitLab.<\/p>\n\n\n\n<p>L\u2019option <code>-u<\/code> associe la branche locale \u00e0 la branche distante.<\/p>\n\n\n\n<p>Apr\u00e8s ce push, GitLab propose souvent de cr\u00e9er une merge request.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">13.3. Comprendre la merge request<\/h3>\n\n\n\n<p>Une merge request sert \u00e0 demander l\u2019int\u00e9gration d\u2019une branche dans une autre branche, souvent vers <code>main<\/code>.<\/p>\n\n\n\n<p>Dans GitLab, elle permet :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>de relire le code ;<\/li>\n\n\n\n<li>de discuter des changements ;<\/li>\n\n\n\n<li>de v\u00e9rifier les conflits ;<\/li>\n\n\n\n<li>de d\u00e9clencher des contr\u00f4les CI\/CD si le projet les configure ;<\/li>\n\n\n\n<li>de garder une trace de la d\u00e9cision.<\/li>\n<\/ul>\n\n\n\n<p>Pour un projet BTS, tu peux utiliser une merge request m\u00eame seul. Elle t\u2019aide \u00e0 documenter proprement ton travail.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">14. S\u00e9curit\u00e9, droits d\u2019acc\u00e8s, SSH et pare-feu<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">14.1. Utiliser SSH plut\u00f4t que le mot de passe<\/h3>\n\n\n\n<p>GitLab recommande l\u2019usage des cl\u00e9s SSH : tu g\u00e9n\u00e8res une paire de cl\u00e9s sur ton poste, tu ajoutes la cl\u00e9 publique dans ton compte GitLab, puis tu v\u00e9rifies la connexion.<\/p>\n\n\n\n<p>G\u00e9n\u00e8re une cl\u00e9 SSH moderne avec <code>ed25519<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh-keygen -t ed25519 -C \"prenom.nom@example.com\"<\/code><\/pre>\n\n\n\n<p>La commande <code>ssh-keygen<\/code> cr\u00e9e une paire de cl\u00e9s.<\/p>\n\n\n\n<p>L\u2019option <code>-t ed25519<\/code> choisit l\u2019algorithme Ed25519, adapt\u00e9 aux usages modernes.<\/p>\n\n\n\n<p>L\u2019option <code>-C<\/code> ajoute un commentaire. Tu peux mettre ton adresse e-mail pour reconna\u00eetre la cl\u00e9 dans GitLab.<\/p>\n\n\n\n<p>Par d\u00e9faut, Git propose le fichier :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>~\/.ssh\/id_ed25519<\/code><\/pre>\n\n\n\n<p>Le fichier <code>~\/.ssh\/id_ed25519<\/code> contient la cl\u00e9 priv\u00e9e. Tu ne dois jamais la partager.<\/p>\n\n\n\n<p>Le fichier <code>~\/.ssh\/id_ed25519.pub<\/code> contient la cl\u00e9 publique. Tu peux la copier dans GitLab.<\/p>\n\n\n\n<p>Affiche la cl\u00e9 publique.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat ~\/.ssh\/id_ed25519.pub<\/code><\/pre>\n\n\n\n<p>La commande <code>cat<\/code> affiche le contenu du fichier. Copie toute la ligne dans GitLab, dans les param\u00e8tres SSH de ton compte.<\/p>\n\n\n\n<p>Teste ensuite la connexion.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh -T git@gitlab.com<\/code><\/pre>\n\n\n\n<p>La commande <code>ssh<\/code> ouvre une connexion SSH.<\/p>\n\n\n\n<p>L\u2019option <code>-T<\/code> d\u00e9sactive l\u2019ouverture d\u2019un terminal distant. Pour GitLab, tu veux seulement v\u00e9rifier l\u2019authentification Git.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">14.2. Ports r\u00e9seau concern\u00e9s<\/h3>\n\n\n\n<p>Quand tu utilises GitLab.com ou un GitLab h\u00e9berg\u00e9<audio autoplay=\"\"><\/audio><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction Dans un projet de BTS CIEL ou SIO, tu dois savoir organiser ton code, suivre tes modifications, collaborer avec d\u2019autres personnes et retrouver rapidement l\u2019historique d\u2019un travail. Git r\u00e9pond \u00e0 ce besoin en assurant le contr\u00f4le de version. GitLab ajoute une interface web pour h\u00e9berger ton d\u00e9p\u00f4t, g\u00e9rer les branches, suivre les t\u00e2ches, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[15],"tags":[17,16,19],"class_list":["post-383","post","type-post","status-publish","format-standard","hentry","category-gestion-de-projet","tag-git","tag-gitlab","tag-versioning"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Fiche gitlab et git - Eryann Breizh SecOps<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fiche gitlab et git - Eryann Breizh SecOps\" \/>\n<meta property=\"og:description\" content=\"1. Introduction Dans un projet de BTS CIEL ou SIO, tu dois savoir organiser ton code, suivre tes modifications, collaborer avec d\u2019autres personnes et retrouver rapidement l\u2019historique d\u2019un travail. Git r\u00e9pond \u00e0 ce besoin en assurant le contr\u00f4le de version. GitLab ajoute une interface web pour h\u00e9berger ton d\u00e9p\u00f4t, g\u00e9rer les branches, suivre les t\u00e2ches, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/\" \/>\n<meta property=\"og:site_name\" content=\"Eryann Breizh SecOps\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-06T09:23:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-06T09:23:51+00:00\" \/>\n<meta name=\"author\" content=\"wpadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"wpadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/eryann.fr\\\/index.php\\\/gestion-de-projet\\\/fiche-gitlab-et-git\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/eryann.fr\\\/index.php\\\/gestion-de-projet\\\/fiche-gitlab-et-git\\\/\"},\"author\":{\"name\":\"wpadmin\",\"@id\":\"https:\\\/\\\/eryann.fr\\\/#\\\/schema\\\/person\\\/d2ee98d2385cd045ed4fe1c07ca320b5\"},\"headline\":\"Fiche gitlab et git\",\"datePublished\":\"2026-05-06T09:23:50+00:00\",\"dateModified\":\"2026-05-06T09:23:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/eryann.fr\\\/index.php\\\/gestion-de-projet\\\/fiche-gitlab-et-git\\\/\"},\"wordCount\":2450,\"publisher\":{\"@id\":\"https:\\\/\\\/eryann.fr\\\/#organization\"},\"keywords\":[\"git\",\"gitlab\",\"versioning\"],\"articleSection\":[\"Gestion de projet\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/eryann.fr\\\/index.php\\\/gestion-de-projet\\\/fiche-gitlab-et-git\\\/\",\"url\":\"https:\\\/\\\/eryann.fr\\\/index.php\\\/gestion-de-projet\\\/fiche-gitlab-et-git\\\/\",\"name\":\"Fiche gitlab et git - Eryann Breizh SecOps\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/eryann.fr\\\/#website\"},\"datePublished\":\"2026-05-06T09:23:50+00:00\",\"dateModified\":\"2026-05-06T09:23:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/eryann.fr\\\/index.php\\\/gestion-de-projet\\\/fiche-gitlab-et-git\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/eryann.fr\\\/index.php\\\/gestion-de-projet\\\/fiche-gitlab-et-git\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/eryann.fr\\\/index.php\\\/gestion-de-projet\\\/fiche-gitlab-et-git\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/eryann.fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fiche gitlab et git\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/eryann.fr\\\/#website\",\"url\":\"https:\\\/\\\/eryann.fr\\\/\",\"name\":\"Eryann Breizh SecOps\",\"description\":\"Fiches techniques &amp; labs en syst\u00e8mes et r\u00e9seaux poor les \u00e9tudiants en BTS CEIL ET SIO\",\"publisher\":{\"@id\":\"https:\\\/\\\/eryann.fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/eryann.fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/eryann.fr\\\/#organization\",\"name\":\"Breizh Sec Ops\",\"url\":\"https:\\\/\\\/eryann.fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/eryann.fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/eryann.fr\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/cropped-088112b9-fd28-4b18-b02d-4d9dded3e900-e1777846396685.png\",\"contentUrl\":\"https:\\\/\\\/eryann.fr\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/cropped-088112b9-fd28-4b18-b02d-4d9dded3e900-e1777846396685.png\",\"width\":1246,\"height\":229,\"caption\":\"Breizh Sec Ops\"},\"image\":{\"@id\":\"https:\\\/\\\/eryann.fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/eryann.fr\\\/#\\\/schema\\\/person\\\/d2ee98d2385cd045ed4fe1c07ca320b5\",\"name\":\"wpadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d71b4031c3d015de3ca68c137413277e548b331b07db0acf781b9379b798eb3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d71b4031c3d015de3ca68c137413277e548b331b07db0acf781b9379b798eb3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d71b4031c3d015de3ca68c137413277e548b331b07db0acf781b9379b798eb3e?s=96&d=mm&r=g\",\"caption\":\"wpadmin\"},\"sameAs\":[\"https:\\\/\\\/eryann.fr\"],\"url\":\"https:\\\/\\\/eryann.fr\\\/index.php\\\/author\\\/wpadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Fiche gitlab et git - Eryann Breizh SecOps","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/","og_locale":"fr_FR","og_type":"article","og_title":"Fiche gitlab et git - Eryann Breizh SecOps","og_description":"1. Introduction Dans un projet de BTS CIEL ou SIO, tu dois savoir organiser ton code, suivre tes modifications, collaborer avec d\u2019autres personnes et retrouver rapidement l\u2019historique d\u2019un travail. Git r\u00e9pond \u00e0 ce besoin en assurant le contr\u00f4le de version. GitLab ajoute une interface web pour h\u00e9berger ton d\u00e9p\u00f4t, g\u00e9rer les branches, suivre les t\u00e2ches, [&hellip;]","og_url":"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/","og_site_name":"Eryann Breizh SecOps","article_published_time":"2026-05-06T09:23:50+00:00","article_modified_time":"2026-05-06T09:23:51+00:00","author":"wpadmin","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"wpadmin","Dur\u00e9e de lecture estim\u00e9e":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/#article","isPartOf":{"@id":"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/"},"author":{"name":"wpadmin","@id":"https:\/\/eryann.fr\/#\/schema\/person\/d2ee98d2385cd045ed4fe1c07ca320b5"},"headline":"Fiche gitlab et git","datePublished":"2026-05-06T09:23:50+00:00","dateModified":"2026-05-06T09:23:51+00:00","mainEntityOfPage":{"@id":"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/"},"wordCount":2450,"publisher":{"@id":"https:\/\/eryann.fr\/#organization"},"keywords":["git","gitlab","versioning"],"articleSection":["Gestion de projet"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/","url":"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/","name":"Fiche gitlab et git - Eryann Breizh SecOps","isPartOf":{"@id":"https:\/\/eryann.fr\/#website"},"datePublished":"2026-05-06T09:23:50+00:00","dateModified":"2026-05-06T09:23:51+00:00","breadcrumb":{"@id":"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eryann.fr\/index.php\/gestion-de-projet\/fiche-gitlab-et-git\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/eryann.fr\/"},{"@type":"ListItem","position":2,"name":"Fiche gitlab et git"}]},{"@type":"WebSite","@id":"https:\/\/eryann.fr\/#website","url":"https:\/\/eryann.fr\/","name":"Eryann Breizh SecOps","description":"Fiches techniques &amp; labs en syst\u00e8mes et r\u00e9seaux poor les \u00e9tudiants en BTS CEIL ET SIO","publisher":{"@id":"https:\/\/eryann.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eryann.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/eryann.fr\/#organization","name":"Breizh Sec Ops","url":"https:\/\/eryann.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/eryann.fr\/#\/schema\/logo\/image\/","url":"https:\/\/eryann.fr\/wp-content\/uploads\/2026\/05\/cropped-088112b9-fd28-4b18-b02d-4d9dded3e900-e1777846396685.png","contentUrl":"https:\/\/eryann.fr\/wp-content\/uploads\/2026\/05\/cropped-088112b9-fd28-4b18-b02d-4d9dded3e900-e1777846396685.png","width":1246,"height":229,"caption":"Breizh Sec Ops"},"image":{"@id":"https:\/\/eryann.fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/eryann.fr\/#\/schema\/person\/d2ee98d2385cd045ed4fe1c07ca320b5","name":"wpadmin","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/d71b4031c3d015de3ca68c137413277e548b331b07db0acf781b9379b798eb3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d71b4031c3d015de3ca68c137413277e548b331b07db0acf781b9379b798eb3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d71b4031c3d015de3ca68c137413277e548b331b07db0acf781b9379b798eb3e?s=96&d=mm&r=g","caption":"wpadmin"},"sameAs":["https:\/\/eryann.fr"],"url":"https:\/\/eryann.fr\/index.php\/author\/wpadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/eryann.fr\/index.php\/wp-json\/wp\/v2\/posts\/383","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eryann.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eryann.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eryann.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eryann.fr\/index.php\/wp-json\/wp\/v2\/comments?post=383"}],"version-history":[{"count":1,"href":"https:\/\/eryann.fr\/index.php\/wp-json\/wp\/v2\/posts\/383\/revisions"}],"predecessor-version":[{"id":384,"href":"https:\/\/eryann.fr\/index.php\/wp-json\/wp\/v2\/posts\/383\/revisions\/384"}],"wp:attachment":[{"href":"https:\/\/eryann.fr\/index.php\/wp-json\/wp\/v2\/media?parent=383"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eryann.fr\/index.php\/wp-json\/wp\/v2\/categories?post=383"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eryann.fr\/index.php\/wp-json\/wp\/v2\/tags?post=383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}