Disclaimer: I have no affiliation with Microsoft’s GitHub, GitLab, CodeCademy or D2L team.

Last week, I presented feedback forms for the tools I’m actively maintaining. Forms are the best way to interact with, or contribute to these projects, if you’re not familiar with Git/GitHub yet. A link to these forms can be found in each package’s GitHub README, @ section Contributing.

This week I present Git/GitHub, two useful and complementary tools for online collaboration, and especially for submitting changes to nnetsauce, teller, querier, ESGtoolkit or crossval. Git is a command line version control tool that allows you to track changes to a project’s repository. GitHub is, among other things, a hub for Git with a user-friendly web interface. With GitHub (and I guess it’s the same for GitLab), you can work remotely with many different contributors on the same project and keep a journal of who did what, where and when.

The best resources that I found to learn Git basics were the first three chapters of Pro Git, available online for free. Of course, you can read the entire book for a deeper dive into Git’s intricacies, but I found these chapters to be sufficient to start doing a lot of interesting things.

If you want to contribute to a repository (repo), you’ll first need to install Git and create a Github account. Once you’re done with installing Git and creating a Github account, you can fork + clone nnetsauce, teller, querier, ESGtoolkit or crossval. That means: creating your own local copy of these repos (note that if the source repo is dropped, then your forked repo will be dropped too), so that you can work on them without affecting the source repo. Your local changes to forked + cloned repos are not visible to the source repo until you send a proposal for changes – which can be accepted or rejected – i.e submit a pull request.


To finish, I found this resource to be very informative in describing the process fork + clone + submit a pull request. You can replace all references to the book in there, by references to nnetsauce, teller, querier, ESGtoolkit or crossval.

Note: I am currently looking for a gig. You can hire me on Malt or send me an email: thierry dot moudiki at pm dot me. I can do descriptive statistics, data preparation, feature engineering, model calibration, training and validation, and model outputs’ interpretation. I am fluent in Python, R, SQL, Microsoft Excel, Visual Basic (among others) and French. My résumé? Here!