2. What You Can Do with Git and GitHub
A study of how Digital Humanists use GitHub, conducted by Lisa Spiro and Sean Morey Smith, found that a wide range of users, including professors, research staff, graduate students, IT staff, and librarians commonly used the site in their DH work. They used GitHub for a diverse range of activities, such as:
- Developing software
- Sharing data sets
- Creating websites
- Writing articles and books
- Collating online resources
- Keeping research notes
- Hosting syllabi and course materials
Why Use GitHub?
Participants in the study said they found GitHub useful in their Digital Humanities work for several reasons. In particular, it facilitated:
- Sharing and backing up files on multiple computers
- Monitoring changes effectively
- Recovering from bugs or errors by going back in time before the error arose
- Using different branches for experiments and new directions
- Sharing and managing files with others—seeing who added what content and when
How We Use GitHub
Sharing and Attribution
As you can see across these sessions, we use GitHub to host workshop curricula. Hosting sessions on GitHub allows you (and anyone else interested in these topics!) to follow our repositories, and create your own version of the workshop based on our materials. This fosters open scholarship and knowledge sharing. It also facilitates attribution and citation by clearly tracking which content was created by whom, when it was added, and which projects or materials are derived from others.
Case One: This Session
If you go this to workshop on GitHub and look at the top of the page just under the workshop title,
DHRI-Curriculum/git, you can see it is
forked from pswee001/Git_DRI_Jan_2018 (next to the red star). That line shows that this particular repository is copied from (“forked from”) the curriculum for a session presented at our January 2018 Institute by “pswee” (former Graduate Center Digital Fellow Patrick Sweeney). If you then look at that repository, you will see that it is in turn forked from previous sessions that were developed by other GC Digital Fellows for workshops in past years. We’ll expand on forking in the final section of this workshop.
Git is also used in writing projects! Version control makes tracking changes tractable, especially when there are multiple authors working asynchronously. It can be an alternative to using track changes in Microsoft Word, or comments and edits in a Google Doc.
Case Two: Coauthored Publications
Git and GitHub—together or independently—support multi-author publishing. Like we have done with the DHRI curriculum, you can have a shared project folder that multiple people are working from asynchronously, even on the same parts if they wanted, and then those different offshoots can be carefully folded back into the main project. A singular author can also create different offshoots on their own, allowing the writer to explore different ways forward. This, combined with version control, allows authors to easily return to and compare older drafts or retrieve sections previously discarded.
We encourage you to explore these features after you gain a grasp on the fundamentals in the current workshop. You can find resources to do this on the Theory to Practice page!
Versions Across Time
How did you initially come by the syllabus you use for your class(es), and did you develop it over time? Many professors borrow and adapt from each other, and most of us probably update our syllabi each semester, even if only a little bit.
Through this process, many of us end up with a set of files that looks something like this:
While I probably can tell which version is the “final” one, I can not see what was changed along the way or how the different versions vary from each other.
With Git, you would save these multiple versions over time as one file, and each version you save includes a note about what has changed so you can easily revert back to an older version if needed.
By looking at the file list, you also can not tell who the syllabus originally came from, or if there were contributions from many individuals. Git and GitHub can help make attribution clear, and maintain it over time as the syllabus travels between hands.
Case Three: Syllabi
Increasingly we see that faculty are sharing their syllabi on GitHub (example: DLCL 204: Digital Humanities Across Borders). Some are even using GitPages that apply a user-friendly interface to their repository to make it easier to access and navigate for their students (example: Digital History).
GitHub offers a way of making a course publicly avaiable on the web, and sometimes easier or more intuitive to users than some learning management systems. Git helps track the changes over time.
When the softwares are used together, Git and GitHub also support a collaborative appraoch to syllabi development. Copying another’s project and modifying and remixing the content to meet your needs is a seamless and transparent process. Attribution of specific changes over time is a foundational function of how Git operates; GitHub explicitly renders attribution, making it easy to see who(s) did what. This is one of the attractions of using the platform.
In a practical sense, you could search other syllabi on GitHub, and share yours so it could be searched by others. If someone finds a syllabus that includes parts they want to use, they could fork that syllabi to their GitHub account, and download the files to your local machine and edit them there. Any changes could then be added back to the repository on GitHub, thereby sharing your amendments publicly. On GitHub, attribution of who contributed what are transparent. Meanwhile, your amended version would be available for others to modify and re-share.
Even if you were only working with your own self-created syllabus, like we’ll do later in this workshop, Git and GitHub can be useful for tracking your changes without the hassle of multiple files. From one file, you can use Git to compare your current version with older versions; you can also compare and share these different versions on GitHub if you wanted.
We will cover these features in-depth in a later lesson in this workshop.
Challenges for lesson 2
What tasks could Git and/or GitHub offer support to? (Select all that apply)
Terms Used in Lesson
What tasks could Git and/or GitHub offer support to?
What tasks could Git and/or GitHub offer support to?(Select all that apply)
Terms Used in Lesson
Can you define the terms below? Hover over each of them to read a preview of the definitions.
Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. It allows you to revert selected files back to a …