Spesso mi trovo perplesso di fronte a una domanda del genere. Devo eseguire la versione dei miei progetti per due motivi:
- pubblica il codice sorgente con tutta la sua cronologia in modo che persone possano entrarci, esplorarlo e farne uso.
- archivia il mio progetto con tutta la sua cronologia in modo che I sia in grado di ripristinare, fork di nuovo ecc.
Ci sono essenzialmente due tipi di file nei miei progetti:
- file essenziali, raw-source-core,
src/*,README.md,configure.ac, etc. ho bisogno che siano versionnati per persone . - file per aiutarmi a lavorare con il raw-source-core, come
customCheckNBuildScripts/*,favoriteIDEConfiguration/*,absolutePaths/*,shortcuts/*,hooksILike/*ecc. ho bisogno che siano versionned per me .
Quale flusso di lavoro mi avrebbe aiutato ad affrontare un simile conflitto?
.gitignore offre un modo meraviglioso di filtrare tra i file di origine e i file di build. Ma vorrei che ci fossero due versioni di esso. Nel mio mondo ideale, conterrebbe:
# RAW-SOURCE-CORE versionning part
# Dedicated to remote github [email protected]:user/myPublicRepo.git
*
!src/
!README.md
!configure.ac
# PERSONAL-USE-OF-THIS-SOURCE versionning part
# Dedicated to remote personal /media/user/flashdrive/myPrivateRepo
*
!src/
!README.md
!configure.ac
!customCheckNBuildScripts/
!favoriteIDEConfiguration/
!absolutePaths/
!shortcuts/
!hooksILike/
Quando spingerei su github , verrebbe usata solo la prima parte e lì.
Quando estraggo da github , otterrei solo la prima categoria di file e la prima parte di .gitignore .
Quando spingerei su personal , verrebbe usata la seconda parte.
Quando estraggo da personal , otterrei tutti i miei file.
Esiste questo tipo di versione ibrida?