1. Git quotidien
| Commande | À quoi elle sert / options utiles |
|---|---|
sudo apt update && sudo apt install git | Met à jour l’index des paquets puis installe Git sur Debian/Ubuntu. |
git --version | Vérifie que Git est installé et affiche sa version. |
git config | Consulte ou modifie la configuration Git.
|
git status | Affiche l’état du dépôt : branche courante, fichiers modifiés, indexés ou non suivis. |
git diff | Compare les modifications du répertoire de travail avec l’index.
|
git log | Consulte l’historique des commits.
|
git switch | Commande moderne dédiée au changement de branche, à privilégier pour cet usage à la place de git checkout.
|
git stash | Met temporairement de côté des modifications non commitées.
|
git revert <sha> | Crée un nouveau commit qui annule les effets du commit ciblé. Adapté à un historique déjà partagé. |
git reflog | Affiche les déplacements locaux de HEAD. Très utile pour retrouver un commit après un reset, rebase ou changement de branche. |
git cherry-pick <sha> | Rejoue un commit précis sur la branche courante. |
git rebase <base> | Rejoue les commits de la branche courante sur une nouvelle base. À éviter sur un historique partagé sans coordination. |
2. Branches et remote
| Commande | À quoi elle sert / options utiles |
|---|---|
git remote | Liste les remotes configurés.
|
git branch | Liste et gère les branches.
|
git fetch | Récupère les nouvelles références du remote sans modifier la branche de travail.
|
git push | Publie des commits ou agit sur une référence distante.
|
git pull | Récupère puis intègre les changements de l’upstream dans la branche courante.
|
Réflexe après merge : supprimer la branche distante avec
git push origin --delete feature/x, supprimer la branche locale avec git branch -d feature/x, puis utiliser git fetch --prune pour nettoyer les références distantes devenues obsolètes.Historique partagé : préférer
revert. Si un push forcé est exceptionnellement nécessaire sur votre propre branche, préférer --force-with-lease à --force.3. GitHub Actions
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: pytest| Clé | Rappel |
|---|---|
on | Déclencheur |
jobs | Travaux |
runs-on | Runner |
steps | Étapes |
uses | Action réutilisable |
run | Commande shell |
needs | Dépendance entre jobs |
strategy.matrix | Variantes d'exécution |
4. Events / triggers
Chaque scénario ci-dessous conserve la même ossature minimale : name → on → jobs. Le contenu du job est volontairement réduit afin de voir immédiatement ce qui change dans le déclencheur.
4.1. Push sur main
Cas typique lorsque main représente la branche de production : le workflow démarre après un push sur cette branche.
name: Push main
on:
push:
branches: [main]
jobs:
run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: echo "Push sur main"
4.2. Pull request vers main
Déclenche les contrôles lorsqu’une pull request cible main, avant le merge.
name: PR main
on:
pull_request:
branches: [main]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: echo "Validation de la PR"
4.3. Déclenchement manuel
workflow_dispatch ajoute le déclenchement manuel du workflow depuis GitHub Actions.
name: Manuel
on:
workflow_dispatch:
jobs:
run:
runs-on: ubuntu-latest
steps:
- run: echo "Lancement manuel"
4.4. Limiter un push à certains fichiers
paths permet de ne déclencher le workflow que si les fichiers correspondant aux chemins indiqués ont changé. paths-ignore fait l’inverse.
name: Push application
on:
push:
branches: [main]
paths:
- "src/**"
jobs:
run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: echo "Le code applicatif a changé"5. Variables, secrets et diagnostic
| Élément | Syntaxe / exemple | À quoi il sert |
|---|---|---|
env | env: | Déclare des variables d’environnement. La portée peut être le workflow, un job ou une step ; une déclaration plus locale peut préciser la valeur utilisée. |
Lire une variable env | ${{ env.APP_ENV }}$APP_ENV dans un shell Linux | Le contexte env est utilisable dans les expressions GitHub ; dans une commande run, la variable est également disponible dans l’environnement du shell. |
GITHUB_REPOSITORY | $GITHUB_REPOSITORY | Dépôt concerné, sous la forme propriétaire/dépôt. |
GITHUB_ACTOR | $GITHUB_ACTOR | Utilisateur ou acteur ayant déclenché le workflow. |
GITHUB_EVENT_NAME | $GITHUB_EVENT_NAME | Nom de l’événement ayant déclenché le run, par exemple push ou pull_request. |
GITHUB_REF | $GITHUB_REF | Référence Git associée au run. |
GITHUB_SHA | $GITHUB_SHA | SHA du commit associé au run. |
GITHUB_WORKSPACE | $GITHUB_WORKSPACE | Répertoire de travail mis à disposition du job sur le runner. |
| Secret | ${{ secrets.NOM }} | Lit un secret configuré dans GitHub. Ne pas placer une valeur sensible directement dans le YAML. |
GITHUB_TOKEN | ${{ secrets.GITHUB_TOKEN }} | Jeton fourni au workflow pour agir sur le dépôt selon les permissions accordées. |
permissions | permissions: | Réduit ou précise les droits accordés au GITHUB_TOKEN. Donner seulement les droits nécessaires. |
| Diagnostic d’un run | Event → filtres → job → needs → step en erreur → logs → variables/contextes | Ordre de lecture rapide lorsqu’un workflow ne démarre pas, qu’un job est ignoré ou qu’une étape échoue. |
Réflexe : si le workflow ne démarre pas, vérifier d’abord
on, la branche et les filtres. S’il démarre mais échoue, descendre ensuite jusqu’au job et à la step en erreur, puis lire ses logs et les valeurs de contexte disponibles.