With the increasing amount of data available and the increasing complexity of statistical analyses, nowadays a PhD in ecology often requires programming skills. Coding comes with challenges to be tackled to do science and good practices to be mastered to do reproducible science.
Git is a powerful tool that keeps track of earlier development stages of their code, it also ease the team work on a specific project. Technically speaking, is a Distributed Version Control Systems (DVCS): every contributor has his one copy of the code, its complete history and comes with powerful tools to version your code, create branches, compare versions and branches, etc.
GitHub is a set of web-services built on the top of . Basically, when we use GitHub:
Note that there are many GitHub alternatives, some of them such as Gitlab let you deploy the full set of web-services it provides on your own server. For instance, Debian’s packages are now hosted and maintained on a Gitlab’s server called Salsa.
As introduces several concepts (stag, stash, commit, pull, push, branch, etc.) it could be quite challenging for beginners, that is why going through a tutorial or reading a book on the topic is rather desirable. Also, using a Graphical User Interface (GUI) to visualize commits and branches could be very helpful, that’s why GtKraken had become quite popular among developers.
Below is the basic workflow that was presented during the two Git lab meeting lead by Gabe (24/10/2018) and Chris (30/01/2019):