2014-11-05 12 views
9

Ho un sottomodulo git che mi piacerebbe diventare parte del mio progetto principale (dal momento che ho un sacco di codice specifico del progetto che andrà nel sottomodulo).rimuovi il sottomodulo git ma conserva i file

Quindi mi piacerebbe rimuovere i riferimenti git al sottomodulo e aggiungere i file al mio repository git principale.

Ma come?

+0

Proprio in modo ricorsivo rimuovere cartelle '.svn' – Raptor

+0

Questo sembra essere un duplicato di http://stackoverflow.com/questions/1759587/un-submodule-a-git-submodule – Chad

risposta

12

È necessario rimuovere il gitlink entry nell'indice:

mv subfolder subfolder_tmp 
git submodule deinit subfolder 
git rm --cached subfolder 
mv subfolder_tmp subfolder 
git add subfolder 

Sostituire subfolder con il nome della cartella per il modulo, e assicurarsi di non aggiungere qualsiasi barra.

Questo è ciò che dettaglio in "Remove a Git submodule?" e "un-submodule a git submodule".

L'opzione --cached consente di mantenere il contenuto della sottocartella nel disco ... tranne git submodule deinit avrebbe già rimosso comunque quel contenuto. Da qui la parte mv.

È quindi possibile aggiungere e confermare tale sottocartella.

+2

Ma' '' git submodule deinit subfolder''' rimuove il contenuto della sottocartella dal disco. L'opzione '' '--cached''' non fa nulla poiché il contenuto è già andato. (git 1.9.2) –

+0

@ and-dev --cached rimuove dall'indice, non dal disco. – VonC

+1

Ho trovato il comando deinit che riporta la sottocartella come una directory vuota. Quindi mv inserisce la sottocartella temp nella nuova directory vuota, invece di rinominarla. Quindi controlla le directory prima di fare il final mv. Altrimenti, ha fatto il lavoro. – Jason

0

La risposta da VonC cancellerà il contenuto della cartella modulo a meno che non si rinomina la cartella fisica prima - come mostrato in questa risposta, la cui domanda è stato notato per essere un duplicato di Chad:

https://stackoverflow.com/a/16162228

+0

La risposta accettata è stata aggiornata per riflettere queste preoccupazioni. – Louth

Problemi correlati