GIT : Fractionner un dépôt local

Bonjour,

lorsque j’ai débuté avec git, j’ai créé un dépot local (git init) sur la racine de mon arborescence /home//
J’aimerai revenir sur ce mauvais choix initial pour créer des dépots limités à des branches limitées pour chaque vieux projet, comme je le fais depuis pour chaque nouveau projet.

Le problème est donc que les historiques git de certains projets sont mélangés tous ensembles, noyés dans le git unique de leur racine commune.

Existe-t-il une méthode ou une stratégie pour réaliser un partage des historiques (au moins certains!)

Un premier test me montre qu’un nouveau «git init» dans un sous-répertoire prend le dessus sur le «git» du répertoire parent, pour les commandes qui suivent comme git commit et git log (ce que j’ai rapidement testé).

Je peux donc dans un 1er temps garder le dépot git sur la racine, tout en créant des dépots par nouveau projet.

Ce qui semble impossible, c’est de récupérer des commits dont certains peuvent contenir des fichiers de différents projets.
En effet, lorsque j’ai fais certains «commit», j’ai activé en même temps des fichiers en cours sur d’autres projets (sur d’autres sous-répertoires)

Je suppose donc qu’il n’y a pas de moyen simple ou automatique pour remettre de l’ordre dans mes affaires.

Bref, un sujet d’étude et de réflexion pour utilisateur de git, ses avantages pas encore tous maîtrisés, et ses limites.

Je sais, c’est un peu tordu! :confused:
je ne me vexerai pas, mais merci quand même de ne pas trop m’insulter :wink:

J’ai trouvé la réponse,

si j’initie un nouveau dépôt «.git/» dans un sous répertoire, c’est celui-ci qui sera pris en compte par les commandes suivantes, et non plus le dépôt du répertoire racine (ou d’un niveau supérieur).

Ça ne concerne pas les commit précédents, qui restent dans le dépôt où ils ont été créés, dans un niveau supérieur.

cd ~/diversProjets/
git init

cd ~/diversProjets/UnProjet/
git commit … (A)
(tout va dans ~/diversProjets/.git/)
git init
git commit … (B)
(tout va désormais dans ~/diversProjets/UnProjet/.git)
git log
montre le commit B, pas le A
cd ~/diversProjets/
git log
montre le commit A, pas le B