Generalmente chi sviluppa software e lo fa di lavoro ha bisogno di uno strumento di controllo delle versioni (i.e. version control system VCS), che gli permetta di:
- Mantenere il codice accessibile
- controllare il codice
- ritornare a versioni precedenti del codice se il software si rompe
- far usare una versione del codice a degli utenti e sbilupparne un'altra contestualmente
- avere un ambiente collaborativo dove condividere, rivedere e richidere aiuto a utenti o colleghi (questo fa in modo di non lavorare più persone sullo stesso documento)
- etc.
git è la soluzione a ciascuno di questi (emoji sopra) problemi per collaborare con programmatori esperti e, con tutta la buona volontà dopo aver letto questa dispensa, utenti non-IT o mai stati esposti a questi strumenti. In questo documento si predilige un approccio pratico introducendo un modus operandi per essere subito pronti a partire e garantire un impatto immediato, tuttavia si lascia anche spazio ad approfondimenti e "linee parallele" tramite strumenti alternativi e approcci con più respiro rispetto allo stretto scopo della dispensa.
Il corso è scritto grazie ad una combinazione di documenti .md e .Rmd (contenuti in src) compilati con rmarkdown trasformandoli in documenti .html.
rmarkdown::render_site("src")Il render dei files .html viene raccolto nella cartella /docs. La cartella è quindi l'oggetto del deployment. Netlify è un'intuitiva piattforma serverless e basata su git per fare build, deployment e collaborare su web apps. Inoltre rende possibile avere un ambiente di CI/CD con hosting scalabile.
Questa dispensa ti darà una mano a familiarizzare con Git + GitHub e RStudio, perchè non provi direttamente a contribuire alla repo cosicchè tu possa sperimentare quello che hai imparato? Inoltre se trovi errori, inesattezze per favore clicca in alto a destra nel sito per essere rediretto all'issue pane e segnalarmelo, se te la senti prova a fare direttamente la correzione tu tramite PR.
Il set up del progetto viene da questo corso di git promosso da INBO, la cui repo. Gli autori a cui vanno i miei ringraziamenti per la contribuzione open source sono @stijnvanhoey, @peterdesmet, @ThierryO. Si ringraziano anche gli ulteriori contributori (@ElsLommelen, @IPauwels, @damianooldoni) e le referenze della contribuzione e quelle della mia contribuzione:
webinars & tutorials:
- Github and Rstudio management
- Collaboration and time travel: version control with git, github and RStudio (un po' datata, 2016, ma sempre di grande interesse dato l'autore i.e. Wickham)
- Computing for the Social Sciences
books (e-books):
- happy GIT with R, di gran lunga la risorsa più completa, il miglior punto per iniziare e per rifinire.
- R Packages, nella sezione del libro di git legata al ciclo di vita dei pacchetti e la condivisione. ottima risorsa in ogni caso, specialmente per git e github come strumento di mantenimento e diffusione dei pacchetti R.
posts:
- An introduction to Git and how to use it with RStudio un'altra grande risorsa che mira all'essenziale. La parte delle PR (Pull Requests) ricalca quella del post.
- How to Use Git/GitHub with R una risorsa valida con annessiu tutorial. La miglior parte è quella iniziale.
- Glossario GitHub: dalla documentazione originale estraggo le parole meno comuni e le rinterpeto.
style:
- rstudio4edu aggiungi stile ai documenti R Markdown.
- STA210-Sp19 by Maria Tackett @matackett (Duke University) Per alcuni elementi del file CSS (la parte delle domande) e per aver costruito il miglior corso di statistica su GitHub.
Misc:
- html guide guida in italiano all'installazione di Git su diversi sistemi operativi. Spacca il capello, anche troppo, l'ho ridotta ai minimi termini.
- RStudio webinar come preparare un buon
reprex.