En essayant d'utiliser git filter-branch
Pour fusionner des repos en utilisant ceci GIST . Ajout de l'extrait pertinent en question:
git filter-branch -f --Prune-empty --tree-filter '
mkdir -p "${REPO_NAME}_tmp"
git ls-tree --name-only $GIT_COMMIT | xargs -I{} mv {} "${REPO_NAME}_tmp"
mv "${REPO_NAME}_tmp" "$REPO_NAME"
'
J'ai eu un avertissement de GIT indiquant ce qui suit:
WARNING: git-filter-branch has a glut of gotchas generating mangled history
rewrites. Hit Ctrl-C before proceeding to abort, then use an
alternative filtering tool such as 'git filter-repo'
(https://github.com/newren/git-filter-repo/) instead. See the
filter-branch manual page for more details; to squelch this warning,
set FILTER_BRANCH_SQUELCH_WARNING=1.
Donc, j'ai regardé git filter-repo
, le description indique ce qui suit:
restructuration de la disposition du fichier (telle que déplacer tous les fichiers dans un sous-répertoire en vue de la fusion avec un autre repo, ...
Cela a montré que cette question peut être résolue avec git filter-repo
, mais même après avoir vérifié la documentation et donné exemples Je n'ai pas pu trouver un moyen de réaliser cela. Quelqu'un peut-il m'aider s'il vous plaît avec la même chose.
Cela ressemble à un chemin de réponses, dans le cadre des filtres à base de chemin :
cd $REPO_DIR_TMP
git filter-repo --path-rename /:${REPO_NAME}_tmp/
Cela réécrireait l'histoire du deuxième représentant dans un sous-dossier (dans ce second régo)
Ensuite, vous pouvez l'ajouter sous la forme d'une télécommande du premier repo, de chercher et de fusionner, comme dans votre gitt.