0

J'ai deux fichiers voudrais envoyer leur propre dépôt, mais je voudrais aussi garder leur propre histoire afin que le nouveau référentiel a déjà un peu d'histoire.Comment extraire 2 fichiers sous forme de sous-module git?

J'ai essayé la recherche et je trouve ces fils:

  1. Splitting a set of files within a git repo into their own repository, preserving relevant history
  2. How to split a git repository while preserving subdirectories?
  3. Create a submodule repository from a folder and keep its git commit history

Mais je ne pouvais pas comprendre exactement comment écrire la commande. J'ai essayé d'exécuter ce sur la base des réponses ci-dessus:

git clone repo 
git remote rm origin 
cd repo 
git filter-branch --tree-filter 'git rm --cached --ignore-unmatch "filename1" "filename2"' -- --all 

Je comptais le dépôt actuel nettoyer et ne garder que ces deux fichiers et leur histoire, alors je pouvais pousser comme nouveau sous-module, mais après En exécutant la commande, tous mes fichiers sont restés dans le dépôt.

Répondre

0

J'ai réussi à le faire en supprimant tous les fichiers de l'histoire, sauf les deux dont j'avais besoin. Je dois regarder dans toute l'histoire et trouver les noms de tous les fichiers qui ont été renommés et élaborer une grande liste de noms de fichiers et de dossiers. Ensuite, je cours ces commandes:

git clone repo 
git remote rm origin 
cd repo 
git filter-branch --force --index-filter \ 
'git rm --cached --ignore-unmatch "folder1" "file1" "etc" -r -f' \ 
--prune-empty --tag-name-filter cat -- --all 
git remote add origin new_bare_empty_remove 
git push -u origin master