Conclusion

Git, albeit complicated at first, is a powerful tool that can improve code development and documentation. Ultimately the complexity of a VCS not only gives users a well-documented “undo” button for their analyses, but it also allows for collaboration and sharing of code on a massive scale. Furthermore, it does not need to be learned in its entirety to be useful. Instead, you can derive tangible benefits from adopting version control in stages. With a few commands (git init , git add , git commit ), you can start tracking your code development and avoid a filesystem full of copied files (Fig. \ref{fig:Fig2}). Adding a few additional commands (git push , git clone , git pull ) and a GitHub account, you can share your code online, transfer your changes across machines, and collaborate in small groups (Fig. \ref{fig:Fig3}). Lastly, by forking public repositories and sending pull requests, you can directly improve scientific software (Fig. \ref{fig:Fig4}).