-
Notifications
You must be signed in to change notification settings - Fork 1
versioncontrol
Florian Schneider edited this page Jun 25, 2015
·
1 revision
To clarify the distinction
- git is a version control system, a slim software on your computer that helps you to keeps track of changes on your files. You can label important points in project time using tags and branches, and revert development if it took a wrong turn. This helps to have a progressive code development and keep the working directory clean and uncluttered by 'old' versions of your code. Version control is suitable for all kinds of text files, e.g. source code, scripts, latex.
- GitHub is a hosting service that hosts remote copies of your git repositories online. A suite of project management tools helps to keep a clear project structure (README and LICENSE files) and facilitates collaborative work (wikis and issues). The repository can be public, i.e. the full code is visible and available to the world, or private, i.e. only registered collaborators can view the code. Edits are only possible by registered collaborators. Any other GitHub user can fork public repositories and ask for integrating the own edits via a pull-request.
- Principles and basics at the CASCADE wiki (another project of Sonia's group)
- the official git book (full online access)
there are thousands of git introductions and tutorials out there. Just ask google.
- a tutorial provided by GitHub
- a tutorial at Atlassian (the company behind Bitbucket, a GitHub alternative)
- slides from Flo's introduction
- Official GitHub help page
- GitHub clients for Windows & for Mac.
GitHubs has a very supportive research policy and provides non-commercial research and educational projects with free-of-charge private repositories. As an individual researcher you can apply as well for your own projects.
Thus all the useful features of GitHub are available to our ongoing projects and we can liberally choose between private or public development.
- publish code: hosting your code for the public, get a DOI for your code
- collaboratively work on code: review and develop
- manage code development: use issue tracking and set milestones
- choose a license: select from many possible licensing schemes for code or text
- documentation: keep a wiki alongside with your research project, record the version history and solved issues of the project