Getting started with GitHub

Similar documents
What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

Intro to Github. Jessica Young

Github/Git Primer. Tyler Hague

Git for Newbies. ComMouse Dongyue Studio

Code Repository. P Blanchfield

Git. CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015

Using GitHub to Share with SparkFun a

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

Revision Control. An Introduction Using Git 1/15

Git! Fundamentals. IT Pro Roundtable! June 17, 2014!! Justin Elliott! ITS / TLT! Classroom and Lab Computing!! Michael Potter!

Git better. Collaborative project management using Git and GitHub. Matteo Sostero March 13, Sant Anna School of Advanced Studies

Improving Your Life With Git

Introduction to Git and GitHub. Tools for collaboratively managing your source code.

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

Tips on how to set up a GitHub account:

A quick (and maybe practical) guide to Git and version control. By Jay Johnson

Version Control for Fun and Profit

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic

Software Development I


Git Introduction CS 400. February 11, 2018

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

A L A TEX-oriented intro to Git

Welcome! Virtual tutorial will start at 15:00 GMT. Please leave feedback afterwards at:

GIT TO DA REPO! VERSION CONTROL, GITLAB, AND ISU

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

I m an egotistical bastard, and I name all my projects after myself. First Linux, now git. Linus Torvalds, creator of Linux and Git

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

Online Remote Repositories

How to be a 1337 h4ck3r: Git + Linux

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47

Visualizing Git Workflows. A visual guide to 539 workflows

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

Git tutorial. Katie Osterried C2SM. October 22, 2015

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

Software Project (Lecture 4): Git & Github

Git Source Control: For the Rest of Us. Nolan Erck

CSE 391 Lecture 9. Version control with Git

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Revision control. INF5750/ Lecture 2 (Part I)

Git for Version Control

Tools for the programming mid-semester projects

Using Git and GitLab: Your first steps. Maurício

GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY

Continuous integration & continuous delivery. COSC345 Software Engineering

How to set up SQL Source Control The short guide for evaluators

Version Control with Git ME 461 Fall 2018

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

A BASIC UNDERSTANDING OF VERSION CONTROL

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

Software Revision Control for MASS. Git Basics, Best Practices

GitHub Classroom. Click Sign up in to top right of the page, and the following dialog is displayed.

Tutorial: Getting Started with Git. Introduction to version control Benefits of using Git Basic commands Workflow

Revision Control and GIT

Version control with Git.

L Modeling and Simulating Social Systems with MATLAB

Git Resolve Conflict Using Mine Command Line

Version Control Systems (VCS)

AIS Grid School 2015

Intro to Git. Getting started with Version Control. Murray Anderegg February 9, 2018

The Old World. Have you ever had to collaborate on a project by

Git(Lab) Tutorial and Hands-On

Having Fun with Social Coding. Sean Handley. February 25, 2010

Use git rm to remove files from workspace

A brief introduction to the GitLab service at the department

Version control system (VCS)

2 Initialize a git repository on your machine, add a README file, commit and push

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson

Tools for collaboration

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

ZIP Code to Legislative District Matching via Cicero. Aaron Dennis

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion

Version Control. Kyungbaek Kim. Chonnam National University School of Electronics and Computer Engineering. Original slides from James Brucker

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

Version control with git and Rstudio. Remko Duursma

Technology Background Development environment, Skeleton and Libraries

Code and data management with Git. Department of Human Genetics Center for Human and Clinical Genetics

Version Control. Software Carpentry Github s Hello World Git For Ages 4 And Up You need source code control now

LPF Training Handbook!

git-flow Documentation

The Rock branching strategy is based on the Git Branching Model documented by Vincent Driessen.

Lecture 2: Data in Linguistics, Git/GitHub, Jupyter Notebook. LING 1340/2340: Data Science for Linguists Na-Rae Han

Distributed Version Control

Source Code Control & Bug Tracking

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

Version control CSE 403

contribution-guide.org Release

Push up your code next generation version control with (E)Git

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

CS314 Software Engineering Configuration Management

School of Computing Science Gitlab Platform - User Notes

Transcription:

Getting started with GitHub A beginner s guide. (There s no code in this slide deck!) Presented by Quinn Supplee https://github.com/quinns

What is GitHub? GitHub is a code hosting platform for version control and collaboration. It lets you collaborate with others down the hall, or across the world. But you can use it for a lot more than just software code. Many technical recruiters and hiring managers are in the habit of reviewing applicants GitHub profiles when making a hiring decision.

Git vs GitHub Git, itself, is an Open Source tool originally created by Linus Torvalds (creator of Linux). GitHub is a commercial (for profit) company based in San Francisco, whose goal is to make using Git as easy as possible. GitHub layers a lot of special sauce and extra features on top of Git, but you can use Git on your own, or use a different 3rd party service such as GitLab or BitBucket. You can also install and configure your own Git server if you want full control.

A few basic terms and concepts Every project is hosted in a repository. Repositories can be public (anyone can view, download, and potentially contribute to your code) or private (only you, and people you invite, can view or interact with your code). Public repositories are free, but private repositories require a paid GitHub account (currently $7/mo). Git automatically creates a permanent history of all changes you ve ever made to your project, and you can easily go back in time to retrieve older versions of your code if you mess something up.

Git is distributed One of Git s best features is that it is distributed. That is, every single working copy on any user s computer, stores the entire project history. There s not necessarily a central server the way there is with older version control systems such as CVS or SVN. Although, to be precise, GitHub is a central server and if you use GitHub exclusively, you give up some of that distributed nature. GitHub has had some downtime (who hasn t), but they re generally quite reliable.

Branches and merging Git allows you to create as many branches as you want. You can use branches for experimenting with new ideas, adding a feature, fixing a bug, or anything else that you want to work on separately without stepping on your existing code.

The work tree and staging area As you create or modify files, they will automatically be added to your work tree. You can easily add these files to your staging area, which is a place to assemble your code before adding it to a commit.

Make and commit changes On GitHub, saved changes are called commits. Each commit has an associated commit message, which is a description explaining why a particular change was made. Commit messages capture the history of your changes, so other contributors can understand what you ve done and why. (Or, maybe just for you to remember what you did 6 months ago.) You can always review all commits to see what has been done in the past, and even roll back to any commit at any time if necessary.

Create a new branch You can create as many branches as you need, as long as they each have a unique name. Some branches might exist only on your computer; others might be pushed to GitHub and be available to all collaborators.

Merging Once you have finished your changes in your new branch, you can merge the changes back into your main (master) branch. Git will automatically try to merge your changes into your repository. If files conflict, it will give you an error and will show you where the conflicts are so you can manually resolve the changes. The branch you were previously working on still exists and you can go back to it at any time. You can use the built in git diff tool to view the differences between files.

Pull requests A pull request is the main way to collaborate on GitHub. Basically, you re requesting to make some changes to a repository, and asking someone (a project maintainer) to approve those changes and pull your code into the repository. You can use GitHub s @mention feature to ask for feedback or approval from an individual or a team. Just ask for help by referring to a user s handle. You can even make pull requests on your own repositories and then approve them yourself. This is a great way to get comfortable with pull requests.

Forking projects Sometimes you want to make some changes to someone s code for your own use but don t want to open a pull request and ask for your changes to be merged into the main repository. To do this, you can easily fork the project. This creates a totally separate copy of the repository under your own account. You can then change it any way you want to (please respect any Open Source or other licenses that may be present).

Social features GitHub has a lot of features to enable and encourage collaborative editing and social sharing. You can follow another user (it s not at all creepy). You can watch a project and all updates to it will show up on your own dashboard. You can also star a project which will let the creator know you re interested in it, but it won t show all updates on your dashboard the watch watch does. The Explore page on GitHub shows interesting projects.

Issue tracking Every GitHub repository features an issue tracker. This is a place to report bugs, ask for enhancements, or just ask questions about a project. You can use this in your own projects as a quick and easy project management tool. You can invite your own clients to collaborate with you, even if they can t code, and they can use the issue tracker to report bugs or just keep an eye on progress. Issues have some nice organizational features such as milestones, labels, and references.

GitHub Pages One of GitHub s coolest features is GitHub Pages. This tool lets you publish static (HTML, CSS, JavaScript) web pages for free. I maintain my own personal site on GitHub Pages. You can even use your own domain name with GitHub Pages. You can either write your HTML in the usual way, or use one of a number of Static Site Generators to do so. GitHub Pages natively supports a popular Static Site Generator called Jekyll. https://jekyllrb.com/

Documenting your project Every GitHub project should have a README file. This file, as the name implies, is a quick overview of what the project is for and how to use it. If you need more comprehensive documentation, you can use the built-in Wiki feature to create a full-featured set of interlinked documentation pages.

Command-line tools The primary interface to Git (and GitHub) is via your command-line. MacOS and Linux have Git built-in. Windows users will need to install a tool called Git Bash https://git-for-windows.github.io/

Graphical user interfaces There are a number of GUI interfaces for Git. Some popular ones that work with any git repository (not just GitHub) include Tower, GitX, GitKraken, SourceTree, and Tortoise. GitHub also offers a cross-platform app just for GitHub projects called GitHub Desktop. This is a great way to get started if you aren t yet comfortable working with the command line. https://desktop.github.com/

Markdown GitHub makes use of a simple text-based format called Markdown. You can use Markdown in issue comments, READMEs, and any file with the.md or.markdown file extension. You can use Markdown to quickly format text using a simple syntax, which will then be converted into HTML automatically.

Pricing GitHub is free for public repositories. You can make a free account and get started with no financial commitment. Personal accounts with private repositories start at $7/month. This gets you unlimited private repositories.

Storage limitations Every GitHub repository has a soft limit of 1GB. If you get near this limit, GitHub will send you an email. There s also a hard limit of 100MB per file in the repository. If you try to push a file to your repository that is larger than 100MB, it will fail with an error message. If you need to store larger files such as binary assets, there s a tool called Git Large File Storage (LFS) for this purpose. GitHub offers Git LFS as a paid add-on.

What next? Create your account at https://www.github.com Get basic tutorials at https://guides.github.com Download GitHub Desktop at https://desktop.github.com Refer to the official Git documentation at https://git-scm.com Check out Static Site Generation at https://www.jekyllrb.com Read about Large File Storage at https://git-lfs.github.com

Thank you! Find me online at www.quinnsupplee.com