Danny Hyun Cho

🏢 Software Engineer at Google

🚩 Former Github Campus Expert

🛩 South Korea 🇰🇷

💻 Avid hacker and tinkerer

🔨 Builds things

👨‍🎓 Studied at UCSB (BS CS) and Stanford (MS CS)

What we're going to talk about

  • The problem we're trying to solve ✅
  • The theory behind how Git works 🔥
  • A CLI walkthrough 🔥
  • Collaborative website example using GitHub flow ✅
  • What's beyond add, commit, push?
  • *Questions tips and tricks 🔥🔨

The problem

👉 Sharing

Sharing Code 💻

Sharing Ideas 💡

Collaborating 👩‍💻 👨‍💻

Rejecting what doesn't work ❌

Methods to collaborate

  • Email
  • Whatsapp
  • Google Docs
  • Google Drive / DropBox
  • USB Drives
  • Paper?
  • Verbally??
  • Serial brain interface???

Not good enough

What is required for effective collaboration

  • Source of truth
  • History of changes
  • Method to accept or reject changes
  • *Simple

How does Git help us achieve effective (and sane) collaboration

A Git primer

Git is the technology.Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

GitHub !== Git (But it's quite close)

GitHub is a web-based hosting service for version control using Git.

It makes Git as easy to use as any website and has many extra features designed to improve how people collaborate.

Git is used a lot

Getting into Git

Distributed Workflows

The 3 stages

The lifecycle

The basics

git init - Initialise new git

git clone username@host:/path/to/repository - Clone from server

git add * - add all files that are untracked

git commit -m "Commit message" - commit a staged file

git push origin master - push committed file to remote server

How we track history (commits)

Each commit is a marker in time with the exact changes (diff) to each file.

Let's try it out

github.com/dannycho7/workshop-guestbook

Beyond the basics

https://git-scm.com/book/en/v2

Questions

Requests for tips and tricks!

What have you struggled with in the past?

education.github.com/pack

Thank you!

Email: hello@dannycho.me

LinkedIn: @dannycho7

GitHub: @dannycho7

Web: dannycho.me