Aller au contenu

Initialiser proprement un dépôt Git

·2 mins·
Git
Git - Cet article fait partie d'une série.
Partie 1: Cet article

Avant toute ligne de code, le dépôt doit être initialisé avec une base claire :

git init -b main

Quelques fichiers structurants suffisent, placés à la racine du fichier :

  • .gitignore : liste ce qui ne doit pas être versionné (artefacts, données, secrets, env locaux).

    # Environnements et caches
    .venv/
    __pycache__/
    .pytest_cache/
    .ipynb_checkpoints/
    
    # Outils et OS
    .uv/
    .vscode/
    .DS_Store
    
    # Secrets
    .env
    !.env.example
    
    # Données lourdes (conserver uniquement les échantillons)
    *.parquet
    *.duckdb
    *.db
    data/**/*
    !data/samples/**
    
    # Artefacts dbt
    target/
    logs/
    dbt_packages/
    .dbt/
    
  • .gitattributes : normalise les fins de lignes et marque les binaires pour éviter des différences illisibles.

    * text=auto eol=lf
    *.sh text eol=lf
    *.bat text eol=crlf
    
    # Binaires
    *.parquet binary
    *.duckdb  binary
    *.png     binary
    *.pdf     binary
    
  • README.md : explique rapidement ce qu’est le projet et comment démarrer.

    # Projet Djohodo
    
    Ce dépôt contient les scripts et modèles pour construire le pipeline data :
    extraction → transformation → analyse.
    
    ## Installation
    `uv sync`
    
    ## Lancer le pipeline
    `make run`
    
    ## Structure du dépôt
    
    `
    src/          # Code Python
    models/       # Modèles dbt
    data/         # Données locales (non versionnées)
    data/samples/ # Jeux d'exemple légers
    `
    
  • CONTRIBUTING.md : donne les règles minimales pour garder le dépôt propre et cohérent.

    # Contribuer au projet
    
    ## Branches
    - `main` : version stable du projet  
    - `feat/<nom>` : nouvelle fonctionnalité  
    ex. `feat/extract-freework`
    - `fix/<nom>` : correction de bug  
    ex. `fix/path-resolution`
    
    ## Commits
    Des messages clairs, au format [Conventional Commits](https://www.conventionalcommits.org/).  
    Exemples :
    - `feat(io): add parquet writer`
    - `fix(dbt): update model schema`
    - `docs(repo): update README`
    
    ## Bonnes pratiques
    - Un commit = un changement cohérent  
    - Une branche par sujet  
    - Pas de données lourdes ni de secrets dans Git  
    - Une PR (pull request) par fonctionnalité, même en solo
    

Ces fichiers posent les règles du jeu : ce qu’on versionne, ce qu’on ignore, et comment on contribue. Le premier commit se limite à cela :

git add .gitignore .gitattributes README.md CONTRIBUTING.md
git commit -m "chore(repo): init git base files"
Thibault CLEMENT - Intechnia
Auteur
Thibault CLEMENT - Intechnia
Data scientist
Git - Cet article fait partie d'une série.
Partie 1: Cet article