91
FTP Commando to Git Hero WordCamp Denver November 16, 2013

FTP Commando to Git Hero - WordCamp Denver 2013

Embed Size (px)

DESCRIPTION

The basics of using version control using WordPress and Git. Also includes a sprinkling of deployment using Beanstalk.

Citation preview

Page 1: FTP Commando to Git Hero - WordCamp Denver 2013

FTP Commando to Git Hero

WordCamp DenverNovember 16, 2013

Page 2: FTP Commando to Git Hero - WordCamp Denver 2013

Organize Fort Collins WordPress meetup

3 plugins on the WordPress repository

Build themes and plugins

Page 3: FTP Commando to Git Hero - WordCamp Denver 2013
Page 4: FTP Commando to Git Hero - WordCamp Denver 2013
Page 5: FTP Commando to Git Hero - WordCamp Denver 2013

1. What is version control, and why use it?

Page 6: FTP Commando to Git Hero - WordCamp Denver 2013

2. How to use version control with WordPress

Page 7: FTP Commando to Git Hero - WordCamp Denver 2013

3. Adding deployment to your workflow

Page 8: FTP Commando to Git Hero - WordCamp Denver 2013

What is version control?

Page 9: FTP Commando to Git Hero - WordCamp Denver 2013

me, pre-version control

Page 10: FTP Commando to Git Hero - WordCamp Denver 2013

Dated Folders

Page 11: FTP Commando to Git Hero - WordCamp Denver 2013

Problem #1How do you access deleted code?

Page 12: FTP Commando to Git Hero - WordCamp Denver 2013

Problem #2How do you effectively collaborate?

Page 13: FTP Commando to Git Hero - WordCamp Denver 2013

Problem #3How do you know what change is in what

folder?

Page 14: FTP Commando to Git Hero - WordCamp Denver 2013

Really long, descriptive folder names

Page 15: FTP Commando to Git Hero - WordCamp Denver 2013

Version ControlProvides a history of changes made

to files in a project

Page 16: FTP Commando to Git Hero - WordCamp Denver 2013

Version ControlProvides a history of changes made

to files in a project

Page 17: FTP Commando to Git Hero - WordCamp Denver 2013

Repository

Page 18: FTP Commando to Git Hero - WordCamp Denver 2013

Repository

Page 19: FTP Commando to Git Hero - WordCamp Denver 2013

GitA popular vcs created in 2005 by Linus Torvalds, the creator of the Linux kernel

Page 20: FTP Commando to Git Hero - WordCamp Denver 2013

DistributedEveryone has their own copy of the project

Don’t need a network connection

No central repository

Page 21: FTP Commando to Git Hero - WordCamp Denver 2013

Serverrepo

Distributed Version Control System

Computer Arepo

Computer Brepo

Page 22: FTP Commando to Git Hero - WordCamp Denver 2013

That’s all great, but how do I use it?

Page 23: FTP Commando to Git Hero - WordCamp Denver 2013

Fort Collins Lambkins

Page 24: FTP Commando to Git Hero - WordCamp Denver 2013
Page 25: FTP Commando to Git Hero - WordCamp Denver 2013

Interacting with Git

Page 26: FTP Commando to Git Hero - WordCamp Denver 2013

Terminal

Page 27: FTP Commando to Git Hero - WordCamp Denver 2013

Remember keyboarding class?

Page 28: FTP Commando to Git Hero - WordCamp Denver 2013
Page 29: FTP Commando to Git Hero - WordCamp Denver 2013
Page 30: FTP Commando to Git Hero - WordCamp Denver 2013

git-scm.com/downloads

Page 31: FTP Commando to Git Hero - WordCamp Denver 2013

git init

Page 32: FTP Commando to Git Hero - WordCamp Denver 2013

git add <filename>

Page 33: FTP Commando to Git Hero - WordCamp Denver 2013

Staging

File 1 Repository

File 2

File 3

Page 34: FTP Commando to Git Hero - WordCamp Denver 2013

git commit -m “Initial commit”

Page 35: FTP Commando to Git Hero - WordCamp Denver 2013

Good Commit Messages

1. Add navigation to header

2. Remove slider from homepage

Page 36: FTP Commando to Git Hero - WordCamp Denver 2013

Bad Commit Messages

1. Fixed that thing that was broken.

2. Edited some code. Now I need a beer.

Page 37: FTP Commando to Git Hero - WordCamp Denver 2013

You are now using version control!

QuickTime™ and aGIF decompressor

are needed to see this picture.

Page 38: FTP Commando to Git Hero - WordCamp Denver 2013

git log

Page 39: FTP Commando to Git Hero - WordCamp Denver 2013
Page 40: FTP Commando to Git Hero - WordCamp Denver 2013

git status

Page 41: FTP Commando to Git Hero - WordCamp Denver 2013

git commit -a -m “Commit Message”

Page 42: FTP Commando to Git Hero - WordCamp Denver 2013

git log

Page 43: FTP Commando to Git Hero - WordCamp Denver 2013
Page 44: FTP Commando to Git Hero - WordCamp Denver 2013

git status

Page 45: FTP Commando to Git Hero - WordCamp Denver 2013

git add .git commit -m “Add stylesheet”

Page 46: FTP Commando to Git Hero - WordCamp Denver 2013

How often should I commit?

Is there a good commit message I could

write?

Page 47: FTP Commando to Git Hero - WordCamp Denver 2013

Using Version Controlwith WordPress

+

Page 48: FTP Commando to Git Hero - WordCamp Denver 2013

1. Install a fresh copy of WordPress

2. Initialize a new git repository

3. Create a .gitignore file

4. Add the current files to staging

5. Commit those files to the repository as the first commit

Page 49: FTP Commando to Git Hero - WordCamp Denver 2013

1. Install a fresh copy of WordPress

Page 50: FTP Commando to Git Hero - WordCamp Denver 2013

2. Initialize a new git repository

git init

Page 51: FTP Commando to Git Hero - WordCamp Denver 2013

3. Create a .gitignore file

Page 52: FTP Commando to Git Hero - WordCamp Denver 2013

4. Add current files to staging

git add .

Page 53: FTP Commando to Git Hero - WordCamp Denver 2013

5. Commit staged files to the repository

git commit -m “Initial commit”

Page 54: FTP Commando to Git Hero - WordCamp Denver 2013

+

!

Page 55: FTP Commando to Git Hero - WordCamp Denver 2013

1. Make changes to files.

2. Add those changed files to staging.

3. Commit staged files to the repository.

4. Repeat.

Page 56: FTP Commando to Git Hero - WordCamp Denver 2013

Real World Examples

Page 57: FTP Commando to Git Hero - WordCamp Denver 2013

Scenario #1

The Client Changes Their

Mind

Page 58: FTP Commando to Git Hero - WordCamp Denver 2013

Check the project’s commit history

git log

Page 59: FTP Commando to Git Hero - WordCamp Denver 2013

Go back in time

git checkout <commit identifier>

Page 60: FTP Commando to Git Hero - WordCamp Denver 2013
Page 61: FTP Commando to Git Hero - WordCamp Denver 2013

Scenario #2

Collaborate with Another Developer

Page 62: FTP Commando to Git Hero - WordCamp Denver 2013

Remote Hosting Options

Page 63: FTP Commando to Git Hero - WordCamp Denver 2013

Setup Connection to Remote Repository

git remote add origin <path_for_remote>

Serverrepo

Computer Arepo

Page 64: FTP Commando to Git Hero - WordCamp Denver 2013

Send Repository to Remote Server

git push origin master

Serverrepo

Computer Arepo

Page 65: FTP Commando to Git Hero - WordCamp Denver 2013

Serverrepo

Computer Arepo

Computer Brepo

Developer Copies Repository Locally

git clone <url>

Page 66: FTP Commando to Git Hero - WordCamp Denver 2013

Serverrepo

Computer Arepo

Computer Brepo

Developer Connects to Repository

git remote add origin <path_for_remote>

Page 67: FTP Commando to Git Hero - WordCamp Denver 2013

Serverrepo

Computer Arepo

Computer Brepo

Developer Pushes Up Their Changes

git push origin <branch>

Page 68: FTP Commando to Git Hero - WordCamp Denver 2013

View Commit History

Page 69: FTP Commando to Git Hero - WordCamp Denver 2013

Branches

Page 70: FTP Commando to Git Hero - WordCamp Denver 2013

master

branch branch

Page 71: FTP Commando to Git Hero - WordCamp Denver 2013

Why?Stay more organized

Easily maintain your “in-progress” work separate fromyour completed, tested, and stable code

Collaborate with others more effectively

Page 72: FTP Commando to Git Hero - WordCamp Denver 2013

Build features in branches

master

branch bug fix

mergefeature

Page 73: FTP Commando to Git Hero - WordCamp Denver 2013

Only commit finished work to the master branch

Create branches for features and large bug fixes

Delete feature branches once merged

Tips

Page 74: FTP Commando to Git Hero - WordCamp Denver 2013

git branch <branch_name>git checkout <branch_name>

Create New Branch

master

branch

Page 75: FTP Commando to Git Hero - WordCamp Denver 2013

Build Cool Feature

master

branch

Page 76: FTP Commando to Git Hero - WordCamp Denver 2013

git checkout mastergit merge <branch_name>

Merge Completed Feature

Page 77: FTP Commando to Git Hero - WordCamp Denver 2013

Merge Completed Feature

master

branch

Page 78: FTP Commando to Git Hero - WordCamp Denver 2013

Keep Your Repository Clean

git branch -d <branch_name>

master

Page 79: FTP Commando to Git Hero - WordCamp Denver 2013

Deployment

Page 80: FTP Commando to Git Hero - WordCamp Denver 2013

Push code. Deploy in one click.

Page 81: FTP Commando to Git Hero - WordCamp Denver 2013

Setup Repository

Page 82: FTP Commando to Git Hero - WordCamp Denver 2013

Set Permissions

Page 83: FTP Commando to Git Hero - WordCamp Denver 2013

Create Remote Repository

Page 84: FTP Commando to Git Hero - WordCamp Denver 2013

Create Your Remote

git remote add beanstalk <url>

Page 85: FTP Commando to Git Hero - WordCamp Denver 2013

git push beanstalk master

Send Files to Your Remote

Page 86: FTP Commando to Git Hero - WordCamp Denver 2013

Create Deployment Environment

Page 87: FTP Commando to Git Hero - WordCamp Denver 2013

Add Server to Environment

Page 88: FTP Commando to Git Hero - WordCamp Denver 2013

Test Connection Settings

Page 89: FTP Commando to Git Hero - WordCamp Denver 2013

Deploy!

Page 90: FTP Commando to Git Hero - WordCamp Denver 2013

Resources

Beanstalk Guides -

http://guides.beanstalkapp.com

Git Book - http://git-scm.com/book

Git Immersion - http://gitimmersion.com/

Git Basics - http://teamtreehouse.com/library/git-

basics

Page 91: FTP Commando to Git Hero - WordCamp Denver 2013

Questions?

@greenhornet79

endocreative.com