GNU/Linux >> Linux Esercitazione >  >> Linux

git:mantiene il registro delle modifiche per il file quando ci si sposta in un repository diverso

Supponi di voler trasferire la cronologia di filename.conf da un repository di origine a un altro repository di destinazione. Penso che la strategia che vuoi seguire sia:

  1. Nel repository di origine, crea un ramo di commit che vengono riscritti per contenere solo filename.conf .
  2. Unisci la linea indipendente di commit in un ramo normale nel repository ricevente.

Sicuramente fai dei backup dei tuoi repository prima di farlo!

Nel repository di origine, usa filter-branch per ricostruire la cronologia rimuovendo tutto tranne filename.conf .

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

Quindi, nel repository ricevente:

git pull path/to/source/repo

Se hai anche bisogno di spostare il percorso che filename.conf è all'interno del repository, probabilmente dovrai usare il --subdirectory-filter opzione su git filter-branch .


Linux
  1. Mantenimento delle autorizzazioni sui file con Git

  2. Come estrarre il file nomefile.tar.gz

  3. Autorizzazione negata durante la clonazione del repository git

  4. come ar x nomefile.a in una directory diversa

  5. Perché rsync non utilizza il trasferimento delta per i file locali?

Come mantenere intatte la proprietà e le autorizzazioni dei file durante la copia di file o directory

Come rimuovere il repository remoto Git

Codifica di un file zip?

Procedura:un'introduzione all'uso di Git

Beanstalkd per CentOs 7

In che modo install -c è diverso da cp