Exemples de commandes git de base


Pour 'cloner'/télécharger un dépot git en local il faut simplement utiliser la commande git clone <l'url du dépôt>

Exemple :

git clone https://github.com/GhostPack/PSPKIAudit
Lien vers le fichier : cliquez ici Copier le code

Avant on avait pour habitude d'ajouter .git à la fin de l'url mais ce n'est pas une obligation.
Exemple : git clone https://github.com/GhostPack/PSPKIAudit.git

Dans le même esprit que git clone, git pull lui est utilisé pour mettre à jour un dépôt local déjà cloné.
Pour l'utiliser, il faut se placer dans le répertoire du projet et faire

git pull
Lien vers le fichier : cliquez ici Copier le code

Exemple

D:\test\aeff>dir
 Directory of D:\test\aeff

         ..
20/03/2026  19:52    

         PSPKIAudit
               0 File(s)              0 bytes
               3 Dir(s)  579 385 393 152 bytes free

 

D:\test\aeff>cd PSPKIAudit

D:\test\aeff\PSPKIAudit>git pull
Already up to date.

 

En gros faire un git pull c'est comme si on demandait à récupérer le code de la branche et de le merger avec nos modifications s'il y en a eu.

Un dépot peut avoir des 'branches', des versions. Pour lister les 'branches' du dépôt distant, faire

git branch -r
Lien vers le fichier : cliquez ici Copier le code
Publicité

Par exemple on voit ici que le depôt Domoticz-deCONZ a 4 versions

D:\test\aeff\Domoticz-deCONZ>git branch -r
  origin/HEAD -> origin/master
  origin/beta
  origin/extended
  origin/master

Pour changer de branch, on peut utiliser checkout. Par exemple pour basculer sur la version beta faire

git checkout beta
Lien vers le fichier : cliquez ici Copier le code

Exemple

D:\test\aeff\Domoticz-deCONZ>git checkout beta
Switched to branch 'beta'
Your branch is up to date with 'origin/beta'.

Après un changement de branch localement, vous n'êtes pas forcément à jour avec le dépôt distant. Vous avez alors 2 options

Commande Utilité
git pull récupère les modifications distantes ET les fusionne avec votre branche locale (équivalent de git fetch + git merge de la branch suivie)
git fetch récupère les informations distantes mais ne modifie pas votre code local

Après un git checkout beta pour passer sur la branche beta, un git fetch met à jour les références distantes sans modifier le code local. Pour voir les différences entre la branche distante 'beta' et la locale, on peut faire

git diff --stat origin/beta
Lien vers le fichier : cliquez ici Copier le code

Vous avez aussi la commande git status. Elle montre si la branche est synchro en terme de commits. Elle montre aussi, localement, les fichiers modifiés, supprimés ou non trackés

git status
Lien vers le fichier : cliquez ici Copier le code

Exemple de commande git status qui montre qu'on est synchro avec la branche master, que le fichier README.md a été modifié localement mais qu'il n'est pour l'instant pas pris en compte pour le prochain commit

D:\test\aeff\Domoticz-deCONZ>git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

Pour prendre en compte une modification sur un fichier local, il faut l'indiquer avec git add

Exemple :

git add README.md
Lien vers le fichier : cliquez ici Copier le code

Une nouvelle exécution de git status montrera alors que la modification du fichier sera prise en compte lors du prochain commit

Exemple :

D:\test\aeff\Domoticz-deCONZ>git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   README.md

Maintenant, ajouter les fichiers un à un ce n'est pas pratique, on peut demander à git de tout prendre en compte SAUF ce qui est exclu dans .gitignore
Pour le mettre en place il faut faire un fichier .gitignore

Sous linux cela se crée facilement avec

nano .gitignore
Lien vers le fichier : cliquez ici Copier le code

Vous pouvez exclure des fichiers comme des répertoires. Exemple :

# Fichiers sensibles
.env
.env.*
config.php
wp-config.php

# Dépendances
node_modules/
vendor/

# Logs
*.log
logs/

# Fichiers temporaires
*.tmp
*.bak
*.swp
.DS_Store

# Uploads
uploads/
files/
storage/

# Cache
cache/
.tmp/
Lien vers le fichier : cliquez ici Copier le code

Pour les droits

chmod 644 .gitignore
Lien vers le fichier : cliquez ici Copier le code

Si vous utilisez git pour votre site web, à la racine de votre site, pensez à protéger tous les fichier qui commencent par un point comme
.git
.gitignore
.env
.htpasswd

Avec cette règle htaccess simple

# Protection fichiers cachés
RewriteRule "(^|/)\." - [F]
Lien vers le fichier : cliquez ici Copier le code

Maintenant qu'on a créé et paramétré .gitignore, on va voir qu'on peut tout déclarer d'un coup. Sur ce sujet git supporte le joker * MAIS il vaut mieux utiliser un point (un . quoi) car cela présente l'avantage de prendre en compte les ajouts ET les suppressions du répertoire courant.

Donc pour prendre en compte toutes les modifications, faire

git add .
Lien vers le fichier : cliquez ici Copier le code

Inversement pour tout retirer on peut faire

git reset .
Lien vers le fichier : cliquez ici Copier le code

Refaire un git status de contrôle ne mange pas de pain

git status
Lien vers le fichier : cliquez ici Copier le code

Exemple de retour où l'on voit que des ajouts ET des suppressions sont prises en compte

git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   favoris.php
        deleted:    favoris.php.old
        modified:   style.css

 

Une fois un ou des fichiers modifiés et pris en compte avec git add, si vous voulez pousser les modifications sur un dépôt sur lequel vous avez les droits, il faut 'commiter' avec un message décrivant les changements.

Exemple

git commit -m "Modification de README.md"
Lien vers le fichier : cliquez ici Copier le code

Envoyez vers votre git vos modifications (vos commits) avec git push.

git push -u origin main envoie tous les commits locaux de la branche main vers origin/main et définit cette branche distante main comme branche de suivi (upstream).

git push -u origin main
Lien vers le fichier : cliquez ici Copier le code

Imaginons que vous avez votre propre serveur / dépôt git et que vous voulez y pousser du code que vous avez déjà développé localement. Dans ce cas, depuis le répertoire où vous avez votre code, initialiser le dépôt Git avec

git init
Lien vers le fichier : cliquez ici Copier le code

Pointer sur votre dépôt créé pour l'occasion avec git remote add

git remote add https://github.com/Login/mon_projet
Lien vers le fichier : cliquez ici Copier le code

Si vous avez votre serveur gitlab auto-hébergé, au niveau de votre projet, déclarer un token

Pour le role donner au moins Maintainer ou Owner sinon vous ne pourrez pas pousser sur la branch main

Pour les scopes, donner au moins read_repository et write_repository

Côté client déclarer le token en adaptant cette commande

git remote set-url origin https://votre_username:votre_token@github.com/Login/mon_projet.git
Lien vers le fichier : cliquez ici Copier le code

S'assurer qu'on est sur la branch main avec

git checkout main
Lien vers le fichier : cliquez ici Copier le code

Récupérer les informations du dépôt distant avec

git fetch origin
Lien vers le fichier : cliquez ici Copier le code

Vous pouvez ajouter tous vos fichiers et répertoires d'un coup. Comme indiqué plus haut pensez à créer un .gitignore avant.

git add .
Lien vers le fichier : cliquez ici Copier le code

Faire un git commit

git commit -m "Première version"
Lien vers le fichier : cliquez ici Copier le code

Pousser le code dans la branch main avec

git push -u origin main
Lien vers le fichier : cliquez ici Copier le code

Ne reste plus qu'à faire un git commit et un git push

git commit -m "Ma modification"
git push origin main
Lien vers le fichier : cliquez ici Copier le code

Voilà, vous avez poussé votre code sur git dans la branch main et vous voulez commencer à bosser sur une évolution qu'on va appeler V2.
Pour cela on peut faire une nouvelle branche nommée V2.

On va commencer par s'assurer qu'on est bien sur la branche main et qu'on est à jour

git checkout main
git pull origin main
Lien vers le fichier : cliquez ici Copier le code

Maintenant on va créer et basculer sur notre nouvelle branche nommée v2
Le -b veut dire "branch" pour créer une branche

git checkout -b v2
Lien vers le fichier : cliquez ici Copier le code

Faites vos modifications, vos ajouts etc et faire un git add pour les en compte. Comme iniqué plus haut il est préférable d'avoir déclaré un fichier .gitignore avant.

git add .
Lien vers le fichier : cliquez ici Copier le code

Faire un commit

git commit -m "v2"
Lien vers le fichier : cliquez ici Copier le code

Faire un push sur la branch v2

git push origin v2
Lien vers le fichier : cliquez ici Copier le code

De là vous pourrez par exemple sur la page de votre git faire une comparaison du code entre les 2 versions


Si vous avez mis en place .gitignore après avoir fait un git add .
alors le .gitignore n'a pas été pris en compte.
Le plus simple pour corriger, c'est de faire un git rm -r --cached .
qui va supprimer le tracking de tous les fichiers (supprime tout de l’index Git) pour ensuite tout réajouter en prenant en compte .gitignore

git rm -r --cached .
git add .
Lien vers le fichier : cliquez ici Copier le code

Si comme un con vous avez oublié de faire un git add avant de faire votre git commit il y a 2 cas de figure :

  • Vous n'avez fait aucun git add depuis le dernier git commit, et bien il n'y a rien à faire car le commit ne sera pas créé avec le message "no changes added to commit". Exemple :

    git commit -m "Refonte des favoris"
    On branch main
    Your branch is up to date with 'origin/main'.

    Changes not staged for commit:
      (use "git add/rm <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
            modified:   favoris.php
            deleted:    favoris.php.old
            modified:   style.css

    no changes added to commit (use "git add" and/or "git commit -a")
     

  • Si vous avez fait des git add depuis le dernier git commit ET que vous avez oublié d'ajouter des fichiers avec git add

Alors vous pouvez rattraper le coup en listant les commit et en revenant en arrière sans perdre les modifications en listant les commits avec

git log --oneline
Lien vers le fichier : cliquez ici Copier le code

Exemple

git log --oneline
79a9efb (HEAD -> main) Refonte des favoris
2aae015 (origin/main) Ajout de ratio au niveau des images jpg

 

On peut alors revenir à un commit sans perdre les modifications. L'option --soft permet de ne pas toucher aux fichiers.

git reset --soft id_de_commit
Lien vers le fichier : cliquez ici Copier le code
Publicité