GNU/Linux >> Tutoriels Linux >  >> Linux

git :conserver le journal des modifications pour le fichier lors du déplacement vers un autre référentiel

Supposons que vous souhaitiez transférer l'historique de filename.conf d'un référentiel source à un autre référentiel récepteur. Je pense que la stratégie que vous souhaitez suivre est la suivante :

  1. Dans le référentiel source, créez une branche de commits qui sont réécrits pour ne contenir que filename.conf .
  2. Fusionnez la ligne indépendante de commits dans une branche normale du référentiel de réception.

Assurez-vous de faire des sauvegardes de vos référentiels avant de faire cela !

Dans le référentiel source, utilisez filter-branch pour reconstruire l'historique en supprimant tout sauf filename.conf .

git checkout -b filtered-commits
git filter-branch -f --prune-empty --tree-filter 'find . -not -name filename.conf -exec rm {} \;' filtered-commits

Ensuite, dans le dépôt de réception :

git pull path/to/source/repo

Si vous devez également déplacer le chemin que filename.conf se trouve dans le référentiel, vous devrez probablement utiliser le --subdirectory-filter option sur git filter-branch .


Linux
  1. Conserver les autorisations de fichiers avec Git

  2. Comment extraire le fichier filename.tar.gz

  3. Autorisation refusée lors du clonage du dépôt git

  4. comment ar x filename.a dans un répertoire différent

  5. Est-ce une bonne idée d'utiliser git pour contrôler la version du fichier de configuration ?

Comment conserver la propriété et les autorisations de fichiers intactes lors de la copie de fichiers ou de répertoires

Comment supprimer le référentiel distant Git

Quand le fichier a-t-il été créé ?

Comment :une introduction à l'utilisation de Git

Pourquoi rsync n'utilise-t-il pas delta-transfer pour les fichiers locaux ?

Conserver un historique de toutes les modifications apportées à un fichier texte