Git is a free and open source distributed version control system. It has many functionalities and was originally geared towards software development and production environment. In fact, Git was initially designed and developed in 2005 by Linux kernel developers (including Linus Torvalds) for Linux kernel development. Here is a fun video of Linus Torvalds touting git to Google. Git can be enabled on a specific folder on your filesystem to version files within that directory. In git (and other versions control systems) terms, this “tracked folder” is called repository (which formally is a specific data structure storing versioning information).
For scientists, git is a useful tool to help you to track changes you make to your scripts and enable you to share your codes with your collaborators. For example, if you break your code git can help you to revert to an earlier working version. Want one of your collaborators to add a feature to your code to do a specific analysis? Git can help you to do so in a smooth and organized manner.
You might also have heard of GitHub. GitHub is a company that hosts git repository online and provides several collaboration features. GitHub fosters a great user community and has built a nice graphical interface to git, adding great visualization capacities of your data.
Basic git commands you need to know: https://docs.google.com/presentation/d/1B7dBvswIvWqkMsM6TRe4dl7ASXCMupSBdEkqOmUjp60/edit?usp=sharing
git workflow options in a collaborative environment: https://www.atlassian.com/git/tutorials/comparing-workflows/centralized-workflow
More advanced (branching): http://pcottle.github.io/learnGitBranching/
git full documentation:http://git-scm.com
<code bash>git config –global user.name “Your Name” git config –global user.email “firstname.lastname@example.org” git config –list
</code>For more info: https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
Note: You can always overwrite these global identity settings for a specific repository by running these commands within the repository without the “global” option.
NCEAS has its own gitHub instance: https://github.nceas.ucsb.edu/
You can use this instance to collaborate with your working group participants and set up as many private repository you would like to.
Here is our tutorial on how to use and organize your work on this instance, as well as using git with R Studio