Git & GitHub Overview
Data Visualization Institute for Librarians
Heidi Tebbe | Bret Davidson
The Plan
- Why use version control systems?
- What is Git?
- What is GitHub?
- Evaluating software projects on GitHub.
- Using GitHub without the command line.
- Non-code uses for Git & GitHub.
How to save documents!
- annual.docx
- annual_final.docx
- annual_final_JC.docx
- annual_final_JC_2.docx
- annual_final_final.docx
- annual_final_final_corrected.docx
- FINAL_annual_final.docx
What does version control do?
- Records the history of changes to a set of related files inside of a "repository".
- Enables navigation of that change history.
- Supports sharing of the repository among a group of collaborators.
Two Kinds of Version Control
- Centralized
- Examples are CVS and Subversion
- Distributed
- Examples are Git and Mercurial
What is Git?
- Git is a distributed version control system.
- Original author is Linus Torvalds, of Linux fame.
- "I'm egotistical, and I name all my projects after myself."
- git means "unpleasant person" in British slang.
What is GitHub?
- GitHub is a Git repository hosting service.
- Adds services on top of Git like issues, wikis, and social networking.
checkout/clone
obtain a copy of a repository
pull/sync
update your local copy of repo to the latest version
branch
create a separate version of the files in the repo
commit
record a set of changes
push/publish
send your changes to the central or remote repo
Critical Features of GitHub
fork
create a copy (clone) in order to make your own changes
use someone else's project as a starting point OR propose changes to the original
pull request
mechanism for submitting your changes to original project
project owner "pulls" in your changes
Non-code Uses
- Knowledge Base
- Data Management
- Communication
Caveats
- No ZIP files for folders
- Not a digital asset management system
- Licenses
Communication
- Jupyter Notebooks
- GitHub Pages
Jupyter Notebooks
- interactive environments that can contain executable code, rich text, mathematics, plots
- support over 40 programming languages, including Python and R
-
Jupyter Notebook App : server-client application that allows editing and running of notebook documents via a web browser
-
Jupyter Notebook Viewer : free web service that allows you to share static versions of publicly available hosted notebook files
- render directly on GitHub
File and Repository Sizes
- git : no file size or file number limits
- GitHub repositories : 1 GB
- files added to GitHub via browser : 25 MB limit
- files added to GitHub via command line : 100 MB limit
- files stored using Git Large File Storage (LFS) : 2 GB limit
Public vs. Private
- git : private
- free GitHub account : public
- paid GitHub plans : public AND private
- students using GitHub : public AND private
Further Learning
Free Tutorials
Documentation
Git & GitHub Overview
Data Visualization Institute for Librarians
Heidi Tebbe | Bret Davidson