What is version control?
Version control is the process of tracking the changes made to a file over time (typically code, but could be nearly anything). The most popular version control systems today are distributed in nature, allowing for multiple people to easily collaborate on a project together.
Read more about version control
Why should I use version control software for my research?
- Ability to revert things that don't work
- Easy comparisons to prior versions
- Remote backup of your source code
- Audit logs track changes made to the file (what was changed, when it was changed, and by whom)
- Efficient collaboration, with the ability to merge changes from multiple users
Best Practices:
- Use SSH for Git
- Commit early & often
- Make a .ignore file, and keep things like passwords, secure tokens, and binaries out of your repository
- Use meaningful commit messages
- Perform merges and resolve conflicts as soon as possible
Version Control Options:
GitHub
GitHub is a Web-based Git repository hosting service. We recommend GitHub for public projects. GitHub is widely used in the academic and open source communities, and provides an easy way for people to find and use your code. GitHub provides access control and several collaboration features such as bug tracking, feature requests, and task management for projects.
Bitbucket
We recommend Bitbucket for projects that need to be private. Bitbucket Cloud is free for teams of 5 or less, and provides free private repositories.
On Campus
If you are looking for local secure version control, there is currently one option. You can make public or private repositories, and manage collaborators.
Local GitLab:
- https://git.las.iastate.edu/
- Accessible from on campus or through VPN only
- Sign in through Okta