Skip to main content

Use the Git and GitHub starter assignment

You can use the Git & GitHub starter assignment to give students an overview of Git and GitHub fundamentals.

Who can use this feature?

Organization owners who are admins for a classroom can use Git & GitHub starter assignments. For more information on classroom admins, see "Manage classrooms."

Note: In January 2024, GitHub Classroom changed the way student repositories are created from starter code repositories. Previously, the process required starter code repositories to be templates, and GitHub Classroom created a new repository for each student based on that template. With the change, student repositories are now created by forking the starter code repository.

This change addresses a frequently requested feature from teachers: the ability to change starter code after an assignment has been accepted by students.

You can read more about this change on the GitHub blog.

This feature is in public beta and subject to change.

The Git & GitHub starter assignment is a pre-made course that summarizes the basics of Git and GitHub and links students to resources to learn more about specific topics.


You must create a classroom before you can create an assignment. For more information, see "Manage classrooms."

Creating the starter assignment

If there are no existing assignments in the classroom

  1. Sign into GitHub Classroom.
  2. Navigate to a classroom.
  3. In the Assignments tab, click Use starter assignment.

If there already are existing assignments in the classroom

  1. Sign into GitHub Classroom.
  2. Navigate to a classroom.
  3. In the Assignments tab, click the link in the blue banner.

Setting up the basics for an assignment

Import the starter course into your organization, name your assignment, decide whether to assign a deadline, and choose the visibility of assignment repositories.

Importing the assignment

To import the Git & GitHub starter assignment into your organization, click Import the assignment.

Naming the assignment

For an individual assignment, GitHub Classroom names repositories by the repository prefix and the student's GitHub username. By default, the repository prefix is the assignment title. For example, if you name an assignment "assignment-1" and the student's username on GitHub is @octocat, the name of the assignment repository for @octocat will be assignment-1-octocat.

Under "Assignment title", type a title for the assignment. Optionally, click to edit the prefix.

Assigning a deadline for an assignment

Optionally, you can assign a deadline to the assignment. Under "Deadline (optional)", click in the text field, then use the date picker to assign a deadline.

Optionally, to make the deadline a cutoff date, select This is a cutoff date. If you use a cutoff date, students will lose write access to their assignment repositories after the cutoff date has passed unless they receive an extension. For more information on extending assignment deadlines, see "Extending an assignment's deadline for an individual or group."

Choosing a visibility for assignment repositories

The repositories for an assignment can be public or private. If you use private repositories, only the student can see the feedback you provide. Under "Repository visibility," select a visibility.

When you're done, click Continue. GitHub Classroom will create the assignment and bring you to the assignment page.

Inviting students to an assignment

By default, GitHub Classroom enables an invitation URL for each assignment you create. Students can accept and submit the assignment while the invitation URL is enabled. You can share the URL with your students on your LMS, course homepage, or wherever you post assignments. Students can also navigate to the assignment on GitHub Classroom if the student has already accepted an assignment for the classroom.

Warning: Be careful where you share invitation URLs. Anyone with an invitation URL for an assignment can accept the invitation and associate a personal account on GitHub with an identifier in your roster.

You can see whether a student has joined the classroom and accepted or submitted an assignment in the All students tab for the assignment. To prevent acceptance or submission of an assignment by students, you can change the "Assignment Status" within the "Edit assignment" view. When an assignment is Active, students will be able to accept it using the invitation link. When it is Inactive, this link will no longer be valid.

The Git & GitHub starter assignment is only available for individual students, not for groups. Once you create the assignment, students can start work on the assignment.

Next steps

Further reading