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?