GNU/Linux >> Znalost Linux >  >> Linux

git:Při přesouvání do jiného úložiště uchovávejte protokol změn pro soubor

Předpokládejme, že chcete přenést historii filename.conf z jednoho zdrojového úložiště do jiného přijímajícího úložiště. Myslím, že strategie, kterou chcete dodržovat, je:

  1. Ve zdrojovém úložišti vytvořte větev potvrzení, která budou přepsána tak, aby obsahovala pouze filename.conf .
  2. Sloučit nezávislou řadu potvrzení do normální větve v přijímajícím úložišti.

Než to uděláte, rozhodně si udělejte zálohy svých úložišť!

Ve zdrojovém úložišti použijte filter-branch k opětovnému vytvoření historie odstraněním všeho kromě filename.conf .

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

Poté v přijímajícím úložišti:

git pull path/to/source/repo

Pokud také potřebujete přesunout cestu, filename.conf je v úložišti, budete pravděpodobně muset použít --subdirectory-filter možnost na git filter-branch .


Linux
  1. Zachování oprávnění k souboru s Git

  2. Jak extrahovat soubor filename.tar.gz

  3. Povolení odepřeno při klonování úložiště git

  1. Přesunutí souboru v Linuxu v C

  2. jak ar x název_souboru.a do jiného adresáře

  3. Jak se install -c liší od cp

  1. Přesouvání souborů na Linuxu bez mv

  2. Proč rsync nepoužívá delta-transfer pro místní soubory?

  3. Je dobrý nápad používat git pro řízení verze konfiguračního souboru?