What is Git?
Git is a version control system. It is primarily used for tracking changes in code although it can be used effectively for tracking changes in any set of text-based files such as wikis. It is useful when used by a single person writing their own code as well as a whole group of developers, distributed globally, writing a large application.
Developers can add files to a project called a “repository”. Within a repository, Git can be used to maintain a log of changes to files in snapshots called “commits”. These commits build on top of one another to form “branches” of commits, the tip of the branch recording the current state of the files in the repository. Developers can rewind the state of the files back to any earlier commit with the click of a button, develop different versions of the files on separate branches at the same time, and merge different versions together all using the tools that come with Git. It is widely considered an essential element of developing professional software. If you would like to learn Git, you can sign up to one of the Git courses run for free by Research IT.
What is GitHub?
GitHub is a web-based platform, built on top of Git, owned and operated by Microsoft. Basic accounts are free, and users can use it to maintain copies of your repositories on GitHub servers to which other developers can connect to develop the software with you. Repositories on GitHub can be private, so only the owners and selected collaborators can connect to them, or public, where they are open for the world to see and use the code within. GitHub also provides a raft of other tools and services that developers can leverage including automated testing, continuous integration and deployment, project management tools, issue and bug tracking and a wiki platform.
What is a GitHub “organization”?
Users on GitHub may choose to create an organization, which is an entity on GitHub that often represents a lab, institution, research group or class / cohort of students. Organization owners can then invite other GitHub user accounts to join the organization. Organizations can own repositories rather than them being owned by individual GitHub users which can provide continuity when developers come and go as they don’t take the repository with them when they leave. Organization owners can also configure permissions and policies specific to that organization which applies to all its members.
What are the different GitHub tiers?
GitHub organises their features and services into tiers, some of which are behind pay walls. GitHub provides a good set of resources for free via their “Free” tier. Individuals and organizations can host unlimited repositories, use the issue tracking system and project management tools. For their public repositories, users and organizations can access 2,000 minutes per month of time on GitHub CI/CD servers for automating software compilation, testing and deployment and storage for packages.
The “Team” tier adds extra services which are useful for groups of developers working on the same repositories including advanced pull request features for merging branches, a wiki platform for documentation and increased allowances of server minutes and package storage.
The “Enterprise” tier adds enterprise-grade administration and auditing tools, permitting organizations to be added to a single enterprise entity. Enterprises can integrate with third-party authentication providers and have an allowance of 50,000 server minutes for building, testing and deploying as well as 50GB of package storage.
What is GitHub Campus?
The GitHub Campus Program is a package of premium GitHub features and services offered to educational institutions for free. From October 2023, The University of Manchester has joined this program and as such, now has access to all the benefits that come with it. There are some terms and conditions around our eligibility for the program with which we must comply to continue on the free license for the services provided. Highlights include a free Enterprise tier account for the University as well as access to GitHub Enterprise Cloud, GitHub Enterprise Server, teacher training to help staff and trainers master Git and GitHub, and access to the GitHub Student Developer Pack. If you would like your lab or cohort to share in the benefits, we’d be happy to invite your organization to our enterprise account.
Who is our GitHub Enterprise admin?
There are several GitHub Enterprise administrators based in Research IT in IT Services including me!
How do I setup an organization and/or join the enterprise?
If you wish to add your existing organization to our enterprise account, then please email me (Adrian Harwood) in the first instance and I will invite you to join. The RSE department can also provide support on how to setup your own GitHub organization or can set one up for you. Please contact the RSE department and we will be happy to help you.