- What are Git, GitHub, and GitHub Enterprise?
- Can I use NCSU GitHub?
- Why should I use NCSU GitHub over GitHub.com?
- What can NCSU GitHub be used for?
- How much space are we given? What can we upload?
- I’m interested! How do I sign up?
- What username/password should I use to login?
- What happens to my data when I graduate?
- Can I add GitHub.com collaborators?
- Why was my account suspended?
- What are the restrictions for organization names?
- Does NCSU GitHub work with any other clients?
- I’m not faculty, staff or a student, but I’d like to join. Can I?
- As a student, do I lose any intellectual property to code I store in NCSU GitHub?
- What is the SSH fingerprint for github.ncsu.edu?
- Should I use SSH or HTTPS connection?
- Why do I get an error that NCSU GitHub has private mode enabled?
- Git has so many commands to learn. Got any tips and tricks?
- My question isn’t answered here.
According to git-scm.com,
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.
According to the Wikipedia article on GitHub,
GitHub is a web-based hosting service for software development projects that use the Git revision control system. GitHub offers both paid plans for private repositories, and free accounts for open source projects. GitHub is the most popular Git hosting site, and the most popular open source hosting site.
GitHub Enterprise is a solution developed by GitHub that allows for customers to install GitHub on their local network. GitHub Enterprise gives an organization complete control over the management and security of repositories and users. NCSU GitHub is licensed to run GitHub Enterprise.
Check out some suggested uses to get you started!
For more information about GitHub Enterprise, see the official GitHub Enterprise FAQ.
Any faculty, staff or student of NC State University is allowed a free account with NCSU GitHub.
The Educational Site license for NCSU GitHub can be used for just about anything related to university academics, research, business, or support.
If you are unsure and would like to know if your project is allowed to be hosted at NCSU GitHub please contact us.
NCSU GitHub is self-contained and self-managed by NC State University. We give our users the opportunity to create an unlimited number of repositories – both public and private – making NCSU GitHub ideal for classroom use and personal projects. Internal groups, called “Organizations”, allow for finer-granularity in specifying which users have access to group-owned repositories.
NCSU GitHub is specifically designed to not compete with Github.com as far as public offering. “Public” inside of NCSU GitHub is public to the institution, not the world.
Only current faculty, staff, and students can use NCSU GitHub. If you need to collaborate with others not associated with NCSU, we suggest using GitHub.com for your project.
If a given project is truly open source, then it may be more appropriate to host it at GitHub.com with a personal account.
NCSU GitHub is excellent for version control over files, such as programming projects (both classroom and personal). You create a repository, add files to the repository, and commit changes to the repository periodically to create a new version of your project. If a particular version of a project causes problems then you can easily revert to a previous version to get things working again.
Branches can be created to develop and test new features. Changes are committed to the branch and once testing is done those changes can be merged back into to master.
Organizations allow finer control of users’ access and permissions.
While NCSU GitHub is strongly intended for the versioning of text-based files, binary files are permitted. There are no fixed-limits for the size of a repository or data usage of a user. Instead, we enforce soft limits, warning users who have an abnormally large disk-usage.
Keep in mind, due to the nature of git, NCSU GitHub is not well suited for managing binary files, such as images, zip files, Word Documents, PDF files, etc. A better place to store these types of files would be in a space such as a local AFS locker (your campus-wide K:\ drive, or people lockers for engineering students) or in your NCSU Google Drive.
If you are a faculty, staff, or a student, you already have access to NCSU GitHub. Simply log in with your Unity username and password. Your NCSU GitHub account will be created instantly after login.
You will always use your Unity username and current password to log into your account. If you change your Unity password at some point, use the new password to log in.
Once a Unity account is disabled you will no longer be able to log into NCSU GitHub. If you are a student collaborating with a faculty member that will need access to your repositories after you graduate, it is important to make arrangements so that the faculty member has access before you leave. Currently, we do not automatically remove account data from NCSU GitHub when you leave, but may in the future. If we need to remove your data to recover space for other users, we will reach out to you individually to allow a smooth transition.
If you need longer-term access, a temporary workshop account can be requested on your behalf and granted permissions to your repositories. You will need to speak to your Departmental IT unit or email firstname.lastname@example.org to start that request.
More information regarding NCSU computing accounts can be found here, https://oit.ncsu.edu/campus-it/rules-and-regulations/student-it-use/unity-account-procedures-students/#activation
GitHub.com collaborators cannot be added to NCSU GitHub. Only current faculty, staff, and students can use NCSU GitHub. If you need to collaborate with others not associated with NCSU, we suggest using GitHub.com for your project.
For the exact reason, check the primary email account registered with your NCSU GitHub account. Typically this would be your @ncsu.edu account unless you have specified something different.
Current faculty, staff, and students are allowed an NCSU GitHub account for free. If a user who does not fit into any of these categories attempts to log in, their account will be suspended, unless they have purchased additional seats to the system.
If you feel your account has been suspended in error, please contact us.
GitHub allows users to create and own an unlimited number of groups, which are referred to as “Organizations“. The only restrictions for an organization name is that it may only contain alphanumeric characters or single hyphens, and cannot begin or end with a hyphen.
Internally, organization names fall into the same namespace as user account login names, which means that if someone has a Unity username that is the same as an existing organization name, that person wouldn’t be able to log into GitHub. Furthermore, the system will not allow you to create an organization with the same name as an existing user.
Since Unity usernames have a maximum length of 11 characters the easiest way to make sure your organization name doesn’t prevent someone from logging in is to use 12 or more characters in your organization name. If it is found that an organization has the same name as someone’s Unity username, that organization will be renamed to name-organization.
Yes, however, free accounts are only available for current faculty, staff, and students. Additional “seats” may be purchased by university departments for users who do not meet this criterion, e.g., visiting scholars or retired faculty. Contact us for more information.
Per university policy, students retain intellectual property rights on their code: http://policies.ncsu.edu/policy/pol-10-00-01
Section 5.1: General Rule. Students will own their INVENTIONS unless (1) the INVENTION is made in the course of the student?s University employment or (2) the INVENTION is conceived or reduced to practice with (a) University-administered funds, (b) SUBSTANTIAL USE OF UNIVERSITY RESOURCES, or (c) another INVENTOR who has a duty to make assignment or has made assignment to the University. Students assign University-owned INVENTIONS in accordance with paragraph 4.6, and are entitled to the same royalty sharing rights as provided to faculty/employee INVENTORS.
Note also that students may not use university-provided resources to run a business or commercial endeavor (sections 3 and 4): http://policies.ncsu.edu/regulation/reg-08-00-02
So unless a student is basing their code on code that was the universities property they should be fine. However, if a student is going to try and monetize said code, they need to get a personal github.com account.
Public key fingerprints can be used to validate a connection to a remote server.
These are the public key fingerprints (in hexadecimal format) for github.ncsu.edu:
These are the SHA256 hashes shown in OpenSSH 6.8 and newer (in base64 format):
You should be able to run the following command to view which fingerprint is used when you make your ssh connection to github.ncsu.edu.
$ ssh -o VisualHostKey=yes email@example.com
SSH is our recommended connection method. Once set up, SSH connections are a convenient and easy way to work with your repositories. The setup usually involves four steps, which are documented at help.github.com and linked to below.
- Checking for existing SSH keys
- Generating a new SSH key and adding it to the ssh-agent
- Adding a new SSH key to your NCSU GitHub account
- Testing your SSH connection
In some cases, a public SSH key needs to be added to your NCSU GitHub account for each computer account you will use to access repositories.
For campus Linux systems, your unity account data, stored in NCSU’s distributed file system, AFS, is mounted as your home directory when you log in. If SSH keys have been generated from your AFS home directory, a private key should already be stored in ~/.ssh/, and you should be able to access your repositories assuming the public key has been added to your NCSU GitHub account.
For other systems that do not mount network unity accounts as the home folder, Windows, for example, you may need to either generate a new SSH key, copy/import an existing private key to an appropriate location, and/or configure a Git client application to use an existing private key.
I just started using NCSU GitHub. Why do I keep getting a “Permission denied (publickey).” fatal error?
Many Git and GitHub publications make use of a publicly accessible URL protocol that starts with git:// . For instance, a tutorial might suggest that you to enter a command such as this:
$ git clone git://github.ncsu.edu/myname/helloworld.git
The git:// protocol is not authenticated and will not ask for credentials, but the github.ncsu.edu service only accepts authenticated access requests. You need to provide credentials in order to connect, either as a username and password over HTTPS or by providing an SSH key. So the git:// protocol does not work on github.ncsu.edu.
Use an SSH or HTTPS URL instead, which are authenticated. The GitHub page for each repository has a text box to copy a URL for SSH ( git@) and HTTPS ( https://) protocols. The command above using authenticated URL formats might look like one of these two commands:
$ git clone firstname.lastname@example.org:myname/helloworld.git
$ git clone https://github.ncsu.edu/myname/helloworld.git
If you use an HTTPS URL, git will ask for a username and password each time it attempts to connect to github.ncsu.edu. The SSH URL relies upon an SSH key copied from the user’s workstation(s) into their NCSU GitHub account settings, and does not ask for a username or password. A key is needed from each workstation from which you access github.ncsu.edu through SSH.
Alexander Zeitler has put together an excellent Git cheat sheet that is available in JPG, PDF and PowerPoint formats. You can download a copy at his “gitcheatsheet” repository here: https://github.com/AlexZeitler/gitcheatsheet
Feel free to contact us.