Qual è l'impatto sulla repository clonati dopo una git filter-branch --index-filtro 'git rm ...'

StackOverflow https://stackoverflow.com/questions/4428826

  •  09-10-2019
  •  | 
  •  

Domanda

Recentemente ho estratto un paio di sottodirectory da un repository git condiviso con
git filter-branch --subdirectory-filter foodir -- --all

Ora ho le sottodirectory ancora rimaste nel repository condiviso centrale e vorrei per rimuoverli. Per quanto ho capito dalla ricerca sul web qualcosa come
 git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD
dovrebbe essere usato per rimuovere i vecchi annuari dalla storia.

Mentre credo che questo lavoro sarà, ora sto chiedendo se questo è il modo migliore per rimuovere qualcosa dalla storia nel caso in cui il repository è condivisa, come ho capito che tutti con un clone locale avrebbe sostanzialmente dovuto ri- clone del repository?

Quindi la mia domanda finale è, ho ragione con queste ipotesi o c'è un modo per rimuovere le directory da più rami della storia, senza dover clonare tutti di nuovo il repository?

Aggiorna
Così ho eseguito alcuni test ed una attualmente in esecuzione con questo comando: git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch -- Dir1 DIR2' --prune-empty --tag-name-filter cat -- --all che funziona ma anche cambia completamente tutti i tasti SHA-1 di tutti i commit, il che è comprensibile, ma non desiderabile. E vorrebbe dire ognuno deve ri-clonare il repository e tutti i collegamenti precedenti tramite gitweb stanno andando a B rotto.

È stato utile?

Soluzione

Non puoi commit in silenzio alter se altre persone hanno già di loro. Ecco come funziona Git ed è una caratteristica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top