Note that this site is in currently in version 1.0.0-alpha.   Some functionality may be limited.

Introduction to Git and GitHub

Git and GitHub are powerful tools for collaborative and individual projects. Git is a version control software that aids with tracking changes made to a set of files over time. GitHub is a web-based platform for storing and sharing project files online. This session begins with a conceptual overview of both tools, including an introduction to fundamental concepts such as version control and practical applications like developing a syllabus or collaborative writing. This session then covers initializing Git repositories, committing changes, pushing to GitHub, cloning repositories to your local machine, and forking repositories from other accounts on GitHub.

In this workshop, you will learn to:

  • Cloning an existing repository from GitHub to your local machine so you can work with it (git clone)
  • Forking an existing respository from another user’s GitHub account to your GitHub account so you can work with it
  • Install and configure Git on your local machine (git --version, git --config)
  • Learn what Git, GitHub and Markdown are, how do they differ, and how they can be integrated to support your scholarly work
  • Learn what version control is and why it can be useful
  • Practice using basic Markdown by creating a syllabus using a plain text editor (including headers, lists, bold, and emphasis)
  • Pushing a repository with Git and files to GitHub (git push origin main)
  • Review basic Command line functions
  • Stage and commit changes using Git (git status, git add, git commit -m, and git log)

Views: 94

Last updated: September 16, 2021

These are the terms that you will learn how to define in this workshop.

Git Version Control Commit Markdown GitHub Forking Repository Push Cloning

Before you get started

In this section, we want to introduce some central steps that you want to take before you get started with this workshop. For instance, there are workshop suggestions that you may want to engage with before you start this workshop, some required or recommended software installations, some files from external sources to download, etc.

Workshops

This is a list of workshops that we suggest you engage with before you get started with this one. They are listed here as they contain some central concepts or tools that you may need before you can digest all the information you will be presented in this workshop.

Introduction to the Command LineRequired

This workshop makes reference to concepts from the Command Line workshop, and having some knowledge about how to use the command line will be central for anyone who wants to learn about git and GitHub.

Quickstart

Software installations

Some software is required for you to participate in this workshop, other is recommended. This is a list of the prerequisite installations that are required of you, a link to each of their instructions (your operating system should have been highlighted below, as long as we have them available) and an indication as to whether it is required or not.

Contexts

Why am I learning this? Why does it matter? How will it help my project? Learning new digital skills is an investment of your valuable time, so it is reasonable to want to know—essentially—what will I get out of taking this workshop? The materials below help situate the skills you are about to learn within a larger context of how they are used, by whom, and to what ends.

Ethical considerations

Digital tools and the skills required to use them are part of our culture and, therefore, never neutral. Digital humanists and social scientists consider the ethical challenges and responsibilities of the tools and methods that they use. The following materials are designed to introduce you to issues you may want to consider as you learn this new skill and decide how to integrate it into your own research and teaching.

Within the nebulous open-source ecosystem, GitHub is an important place for storing and finding code. What if your open source code was used by an entity or for a purpose that did not agree with your ethics? For example, the platform received backlash from employees of GitHub and users of the platform when it was revealed that they held a contract with ICE. In this case, neither group wanted their code shared and used by ICE in detaining and deporting immigrants. Read more here.

Readings before you get started

The readings listed below situate what you are about to learn in cultural contexts, such as a particular humanities or social science field, the information or computer sciences, or popular discourse. The purpose of the readings is to provide a theoretical framework you can use to contextualize how you intend to use the skill or tool introduced in this workshop.

Excuse me, do you have a moment to talk about version control?
Bryan, J. (2017). Excuse me, do you have a moment to talk about version control? PeerJ Preprints.
Markdown for Librarians and Academics
Ovadia, S. (2014). Markdown for Librarians and Academics. Behavioral and Social Sciences Librarian, 33, 120-124.
GitHub for Academics: The open-source way to host, create and curate knowledge
Shaffer, K. (June 4, 2013). GitHub for Academics: The open-source way to host, create and curate knowledge LSE Blog.
Collaborative Writing on GitHub
Begemann, O. (2016). Collaborative Writing on GitHub.
How Digital Humanists Use GitHub
How Digital Humanists Use GitHub: A presentation from Lisa Spiro and Sean Morey-Smith on their study of how Digital Humanists use GitHub.

Projects related to Introduction to Git and GitHub

The following are sample projects that use the skill or tool (either implicitly or explicitly) that you are about to learn. Some skills that are foundational may seem not to lead to a specific project goal that you have in mind. You might be surprised to learn that the following projects depend on the skills learned in this workshop.

GCDI’s Digital Research Institute
GCDI’s Digital Research Institute has been improved and built out over time using GitHub to store and track multiple projects that use the same base of repositories, and new versions.
Chinese
“F-ing Algorithm” project uses Git and GitHub to create multiple versions of their project in different languages—(Chinese and English), and to create a GitBook for sharing their work.
a syllabus using a GitHub repo
Here are two examples of using Git and GitHub for teaching—a syllabus using a GitHub repo and a syllabus using a repo and GitPages.
Fake New Corpus
Fake New Corpus, an open source dataset composed of millions of news articles mainly intended for use in training deep learning algorithms for purpose of fake news recognition. The dataset is still work in progress and for now, the public version includes only 9,408,908 articles.
C+=
C+=, a feminist programming language, created by The Feminist Software Foundation to smash the toxic Patriarchy that is inherent in and that permeates all current computer programming languages.
Leaflet
Leaflet, an open-source Javascript library for building mobile-friendly interactive maps.

Meet your instructor

Connor French is a Ph.D. candidate in the Biology department. He studies the impact of historical climate change on the spatial distribution of animals, with a focus on reptiles and amphibians in the Brazilian Atlantic Forest. As a GC Digital Fellow, Connor specialized in proselytizing the R programming language, especially in contexts outside of his narrow academic field.

Personal linksTwitterPersonal websiteGitHub

Projects I have worked on

avatar