Je travaille sur la restauration de l'historique d'une base de code. J'ai récupéré commits lost at the root de mon repo git, et j'ai maintenant découvert une nouvelle complication.Restaurer l'historique des repo divergents, puis convergents
Une grande partie de code a été divisé en une base de code séparé pendant un certain temps ... puis a fusionné avant.
Main repo: A -- B -- C -- D -- E
| ^
Code moved: | |
V |
Other repo: X -- Y -- Z
Lorsque la scission (et fusion) a eu lieu, les fichiers ont été simplement copiés dans le repo cible, et l'histoire a été perdue. Pour compliquer davantage les choses, les fichiers ont été légèrement modifiés sur chaque copie avant la validation, il est donc probable que j'aurai besoin d'un commit supplémentaire pour ces changements.
Cela me conduit à deux questions:
Est-il possible de remplacer commettre D
(qui copie les fichiers en arrière) avec la branche inférieure (X-Y-Z
)? (Ceci est ma priorité.)
Si c'est possible, sera-t-il également possible de restaurer l'historique des fichiers créés au commit X
?
Il y a environ 300 validations sur le "autre" repo, et environ 5000 sur le repo "principal" à partir de D
.
Je suppose que git-rebase
est probablement nécessaire, mais idéalement, je voudrais utiliser git-filter-branch
de sorte que je n'ai pas à résoudre manuellement les conflits de fusion historiques.