57
GitHub - Getting Started Jonathan Frappier – Senior Technical Consultant Dell EMC & vBrownBag Crew Your career depends on re-inventing yourself, GitHub MUST be in your skillset

Introduction to GitHub - New England VTUG Winter Warmer

Embed Size (px)

Citation preview

GitHub - Getting StartedJonathan Frappier – Senior Technical Consultant Dell EMC & vBrownBag CrewYour career depends on re-inventing yourself, GitHub MUST be in your skillset

Disclaimer*

Always assume:

• When I say how awesome something is what I really mean “In most cases” that thing is awesome

• Here is one way you could do it, there are many others

• I can’t draw 7 red lines all perpendicular with red, green, or transparent ink

Why do I need to learn Git?

Simon Sinek http://bit.ly/2eLYSPN

Why do I need to learn Git?

“In short, software is eating the world.”

Marc Andreessen 2011 http://on.wsj.com/1Hkyems

What does that even mean?

http://www.visualcapitalist.com/

Largest Companies by Market Cap

2001

2016

What does that even mean?

Uber, the worlds large taxi company owns no vehicles. Facebook, the worlds most popular media owner

creates no content. Alibaba, the most valuable retailer has no inventory, & AirBnB, the worlds largest accommodation provider owns no real estate.

angel.co 2015

The point I’m trying to make is…

But I don’t need Git to be an IT Admin…

But I don’t need Git to be an IT engineer…

Your next job will be different

Your next job will be different

Why do I need to learn Git?

“Your career depends on re-inventing

yourself”

Why do I need to learn Git?

Why: Your career depends on re-inventing yourselfHow: By embracing, learning, and accepting thenew skills required to say relevantWhat: DevOps, Ansible, Puppet, Terraform, AWS,And GitHub via this awesome talk

What is Git

http://xkcd.com/1597/

What is Git

Git is a free and open source distributed version control system 

To start, live here…

http://xkcd.com/1597/

What is Version Control

Working with GitHub

If I Git it, do I DevOps?

Git != DevOps

“DevOps is a cultural and operational model that foster collaboration to

enable high performance IT to achieve business goals”

Brian Gracely, Wikibon

GitHub

Easy to setup

Easy to use

Easy-ish to collaborate

Setup

Easy to setup

choco install git

Download, double click, next next next next next….

yum install gitapt-get install git

xcode-select --install

Post Install Setup

git config --global user.name <username>

git config --global user.email <email address>

ssh-keygen –o –a 100 –t ed25519 –C <email address> (provide passphrase)

Easy to setup

In Windows, switch to installdir\git\bin and run sh.exe. Now run

ssh-keygen –o –a 100 –t ed25519 –C <email address> (provide passphrase)

SSH Key Setup

Easy to use

git config --global user.name <username>

git config --global user.email <email address>

ssh-keygen –o –a 100 –t ed25519 –C <email address> (provide passphrase)

SSH Key Setup

Write these down

Easy to use

git add <filename>

git commit

git push

Collaborate on collaboration

Easy-ish to collaborate

branchfork merge

GitHub Basics – Overview1

2

3

4

5

upstream repo

origin repo

local repo

fork

pull request

clonepush

Modify and commit

GitHub Basics – Create a Repository

https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/

GitHub Basics – Clone a Repository

GitHub Basics – Clone a Repository

$ git clone <git repo address – either via SSH or HTTPS>

GitHub Basics – Check Status

$ git status

GitHub Basics – Add Files

GitHub Basics – Add Files

GitHub Basics – Commit Changes

$ git commit –m My awesome commit message

http://bit.ly/vBBgitcommit

GitHub Basics – Push Commits

$ git push

GitHub Basics – Viewing on GitHub

GitHub - Getting Beyond Basics…DON’T LET THIS NEXT SECTION SCARE YOU! YOU DON’T NEED

THIS TOMORROW!!!

GitHub Intermediate – Branches

GitHub Intermediate – Branches

GitHub Intermediate – Pushing Branch Commits

GitHub Intermediate – Merge

GitHub Intermediate – Merge

GitHub Intermediate – Merge$ git checkout master$ git merge devel$ git push

GitHub Intermediate – Branching Theory

GitHub Intermediate – Fork

GitHub Intermediate – Fork

GitHub Intermediate – Fork

GitHub Intermediate – Pull Requests

WARNING!!!!!

GitHub is PUBLIC!!!!!

• Clean your code

• Don’t hard code usernames, passwords

• Don’t put sensitive files in local repos

Tips

• If its sink or swim..

• Don’t jump into the deep end

• Invest in good technique

• Use the buddy system

• It takes time to go bananas

• Practice, practice, practice

Give me more!

Gitting out of a mess with Katie Sylor-Miller @ksylor http://bit.ly/vbbgitmess & ohshitgit.com

Writing a good README.md with Mike Mars @mmars http://bit.ly/vbbgitmess

Join Commitmas & Commitmakkuh! https://github.com/commitmas

Next Steps

• Check out Commitmas http://bit.ly/Commitmas2

• Practice on https://try.github.io or http://rogerdudler.github.io/git-guide/

• Install git on your computer, sign up for an account, and create a repo

• Find a project you can contribute to, or start your own

• Dig in https://git-scm.com/book/en/v2/

Next Steps for PowerShell CodersVester:Vester is a community project that aims to provide an extremely light-weight approach to vSphere configuration management using Pester and PowerCLI. The end-state configuration for each vSphere component, such as clusters and hosts, are abstracted into a simple config file. The configuration is tested and optionally remediated when drift is identified. The entire project is written in PowerShell.

https://github.com/WahlNetwork/Vester

Next Steps for Python CodersAnsible:Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems. http://ansible.com/

https://github.com/ansible/ansible

https://github.com/ansible/ansible-modules-extras/tree/devel/cloud/vmware

Next Steps for oh sh!t I can’t code Coders

• Find a project you’re interested in and contribute documentation

https://github.com/ansible/ansible/tree/devel/docsite/rst

• Get started with PowerCLI and PowerShell, go ask @kmruddy a bunch of questions, put it in GitHub

• Learn to code (https://www.freecodecamp.com)

Jonathan FrappierSenior Technical ConsultantDell EMC Education Services

@jfrappier | @commitmas | @vbrownbag

/in/jonathanfrappier

github.com/jfrappiergithub.com/commitmas

jfrap.comvbrownbag.com