Git Survival

Guide interactif — Git pour le developpeur assiste par IA.

Vérifié le

0/5

Submodules

Un submodule est un repo Git imbrique dans un autre. gentlewits fonctionne comme ca : il vit dans docs/gentlewits/ a l'interieur de chaque projet.

1

Ajouter un submodule

Une seule fois, au setup du projet, a la racine du repo clone.
bash
git submodule add https://github.com/ho757uff/gentlewits.git docs/gentlewits
git commit -m "chore: add gentlewits submodule"
2

Cloner un projet avec submodules

Quand tu clones un projet qui contient deja un submodule :
bash
# Option A : tout d'un coup
git clone --recurse-submodules https://github.com/ho757uff/project.git

# Option B : si deja clone et que docs/gentlewits/ est vide
git submodule update --init --recursive
Info
Si le dossier docs/gentlewits/ est vide apres un clone, c'est normal — il faut initialiser le submodule.
3

Organisation de gentlewits

gentlewits contient la base de connaissances partagée :
text
gentlewits/
├── _README.md
├── CHANGELOG.md
└── knowledge/
    ├── breakthroughs/     # experiences vecues (Format A)
    └── references/        # fiches de reference (Format B)
Conseil
Tous les projets incluent gentlewits en submodule. Un seul push met a jour gentlewits pour tous les projets.
4

Mettre a jour gentlewits

Recuperer les nouveaux guides, profils ou notes techniques :
bash
cd docs/gentlewits
git pull origin main
cd ../..
git add docs/gentlewits
git commit -m "chore: update gentlewits"
5

Modifier gentlewits depuis un projet

Quand tu modifies des fichiers de gentlewits depuis un submodule :
bash
# Etape 1 : Commit + push dans le submodule
cd <projet>/docs/gentlewits
git add knowledge/breakthroughs/new-breakthrough.md
git commit -m "learn: nouvelle fiche breakthrough"
git push origin main

# Etape 2 : Mettre a jour la reference dans le projet parent
cd <projet>/
git add docs/gentlewits
git commit -m "chore: update gentlewits submodule"
git push origin main
Attention
Deux commits necessaires : un dans le submodule, un dans le projet parent pour enregistrer le nouveau pointeur.