How to Fork a Syllabus on GitHub

A few weeks ago Brian wrote a great post on “Forking Your Syllabus.” Borrowing from discussions with Kathy Harris and Trevor Owen, Brian advanced the idea that

syllabi could learn a trick or two from GitHub. GitHub is a repository for open source code that supports version control . . . . What this means in plain terms is that developers can share code using GitHub and then other developers can add on to that code, with the repository tracking all the changes. If a developer wants to take a piece of code down a different line of development, he or she “forks” the code. The fork shows the provenance of the code while still allowing you to adapt it to your own needs. Finding a platform to “fork your syllabus” would not only allow you to give acknowledgments to those whose work you drew on, but it would invite others to make use of your syllabus for their own development.

As Brian noted in his post, the idea of forking a syllabus is related to many different ideas we’ve supported at ProfHacker: collaboratingteaching by borrowing (or theft)using open-access licenses, and even using version control.

In that spirit, in this post I want to explain how to go about forking a document, such as a syllabus, on GitHub. I also want to suggest some best practices that will make it easier to fork shared documents.

How to Fork a GitHub Repository

Using GitHub is pretty straightforward. The idea of version control itself is a little complicated, however, but Julie’s gentle introduction can ease you into it. While ProfHacker is no stranger to thecommand line, in this case you can make your life easier by using the editing tools on GitHub’s website, or by using a graphical Git client like GitHub for Mac. Of course, you’ll have to create a user name at GitHub, which their documentation can help with.

Once you have a GitHub account, you can find a repository (a collection of documents or code) that you want to fork. For example, Karl Stolley has shared his syllabus for a course title “Humanizing Technology.”

You can fork that repository with the click of a button. Near the top of the repository’s page you’ll find a button that says “Fork.” Click that, and GitHub will give you a copy of the repository that you can edit on your own. Now you’ve “forked a class” as Brian suggests.

GitHub fork

If you want to practice, you can fork the ProfHacker e-book repository that I set up for an earlier ProfHacker post.

Best Practices for Sharing Documents on GitHub

If you’re going to share your documents on GitHub, there are a few things you can do to make them easier for others to use.

  1. Share your documents in plain text. GitHub works by tracking how files change line by line, and it can only do this for files it can see inside. MS Word documents, PDFs, and other files like that are opaque to GitHub. Good formats to write in are HTML and Markdown.
  2. Break your documents into smaller files. For a syllabus, you might put your course description, policies, schedule, and each assignment all into their own files. Making each part of the syllabus modular make it easier for someone to borrow an assignment or a policy that she likes.
  3. Give it a license. I like the Creative Commons BY license. (Here is a post by Bethany Nowviskie explaining why scholars should use that license.) Whatever license you pick, though, it is important that you be explicit about what people are allowed to do with your work and what conditions they have to meet. Otherwise, people have to assume that they can’t do anything at all with your work—and that’s probably not what you want.

Do you have any plans to share a syllabus or other documents on GitHub? Have you forked other peoples’ documents?

Image courtesy of Flickr user i_yudai // Creative Commons BY licensed

Return to Top