Buona idea per dividere il mio repository git personale?


1

Ho molti file nella mia home directory sotto il controllo della versione di git.

La mia configurazione di emacs, i file sorgente zsh, la tesi di dottorato, ecc.

È tutto in un enorme repository git alla radice della directory home. (Naturalmente i file stessi si trovano in molte directory diverse.)

Sto pensando di utilizzare filter-branchper dividere il repository in modo che i miei commit di tesi non siano inquinati con i miei .emacscommit, ecc.

In generale, è una buona idea? Non voglio perdere alcuna storia.

Dovrò copiare il mio .gitconfigfile in ogni directory che ottiene un repository?

E, se inavvertitamente mi trovo git add foo.txtin una directory prima git init, verrà messo in scena nel primo repo git che trova man mano che vaga nella mia struttura di directory? O questo può essere prevenuto?

Risposte:


0

Se vuoi dividere il tuo repository in diversi nuovi, non sarai in grado di usarlo filter-branch, dal momento che è fondamentalmente un potente rebaseche funziona all'interno di un singolo repository.

Non è possibile avere diversi repository e conservare comunque la cronologia, poiché la cronologia è composta da commit che toccano tutti i file con versione nel repository originale. Quindi temo che tu non abbia altra scelta che iniziare da capo i repository multipli. Naturalmente è possibile archiviare l'originale nel caso in cui sia necessario consultarlo.

Eviterei sicuramente di creare un repository Git ovunque in una directory di lavoro, ovvero fare git initin una directory che è già versione di Git. Sebbene ciò sia possibile, richiederebbe estrema cautela con i parametri --git-dire / o --work-tree. Spostare invece la $HOME/.gitdirectory in un'altra directory che non verrà verificata prima di creare più repository in directory diverse .

Il .gitconfigfile è il tuo file di configurazione Git per utente . Per impostazione predefinita, vive nel tuo $HOME. Dato che la tua home directory è la tua directory di lavoro, probabilmente hai pensato di aver bisogno di uno di questi file in ogni directory di lavoro, ma non è così. Il file di configurazione per repository è .git/config.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.