This week, I am teaching git and GitHub. In the workshop, I will cover some basic commands in this incredibly powerful software (git) and its incredibly robust hosting service for repositories (GitHub.com).
git + GitHub Workshop 2/15
Like the workshops it was based on led by Digital Fellows Mary Catherine Kinniburgh and Patrick Smyth, and Jen Tang, my workshop is available to follow on or copy from my GitHub repository. It proceeds along this general outline:
- Reviewing the Command Line (the interface we will use to tell git what to do).
- Learning the concepts of Git, GitHub and Markdown (figuring out the differences)
- Configuring Git on your computer
- Initializing Git repositories
- Connecting your repository to your GitHub account
- Using Git Add, Git Commit, Git Push to make local changes, track them, and push them to a remote repo on GitHub.
I wanted to take a moment (i.e. a brief blog post) to list a few of the reasons git version control is worth the effort it takes to learn. The mixed metaphor of git commands can often be confusing (forks? push? commit? branch? origin?), but when the individual parts start to fit the jobs they do, the power of the tool becomes more apparent. When I describe what I’m teaching to friends or my parents or, if I’m feeling ambitious or I succumb to her curiosity, to my 98 year old grandmother, I talk about the uses of a software that tracks your changes. I often spend a lot of time describing the necessity of fine grain version control that doesn’t proliferate copies (final.doc, finalfinal.doc, reallytrulyfinal.doc, etc). I talk about how GitHub enables collaboration and a degree of project management. I talk about how you can use GitHub to create a quick-and-dirty website, or, if you’re me, a string of messy drafts of websites (using GitHub pages like Digital Fellow alum Keith Miyake, or using GitLab pages like Digital Fellow Tahir Butt). When I want to discuss Open Source software, I mention that GitHub is (according to a 2014 article) the largest code host in the world. I talk about how following projects (DH Box! Manifold Scholarship (which uses GitHub in releases)!) can help you understand the process new projects follow.
Cool projects using GitHub
I will explain a lot more about git and GitHub at the workshop (and I’m more than happy to discuss at Digital Fellows Office Hours, Tuesdays 2-4), but this blog post aims to give a couple quick examples that excited my curiosity and convinced me I ought to stick with this git business.
Taeyoon Choi, founder of the School for Poetic Computation (SFPC), presented a version of git poetry last year at an English Department Friday Forum Digital Poetics coordinated by Mary Catherine Kinniburgh. The general idea is demonstrated in GitHub for Poets, which shows how version control might enable a different form of authorship and editing.
Jonathan Reeve, English PhD candidate at Columbia University, has gotten access to tens of thousands of texts from the British Library for the purposes of quantitative analysis. Beyond text analysis using computational methods, he has made these resources available via GitHub for open source minimal editions (using Alex Gil’s Ed.) or for experimentation in Steve Zweibel’s DH Box, a web-app for playing with text analysis in a DH sandbox.
While these examples represent my personal interest in English applications of git, they also serve as examples of projects that seek to engage the capacity of git and GitHub creatively — not just as a resource for copying code.
It is also a great place to find code to copy.
Hope you can make it!
I hope to see you with your laptops, Wednesday, February 15th, at 6:30 P.M. in room 9204!