git102

24
Our project on GitHub http: //github . com/jasonnoble/event_scheduler – Click Fork

Upload: jason-noble

Post on 10-May-2015

923 views

Category:

Technology


0 download

DESCRIPTION

Intro to Git slide deck.Covers Forking, pushing and pulling to Github, Pull requests

TRANSCRIPT

Page 2: Git102

Fork Command

• Fork is a GitHub thing, it’s not a Git command• Clicking fork basically copies a repo on Github into your Github account• This provides a public repo that you have access to push your changes to

Page 3: Git102

Public/Private Repo SetupJasonnoble/event_scheduler(on GitHub)

your-user-name/event_scheduler(on GitHub)

hosh/event_scheduler(on GitHub)

Fork

Other Public Repos

event_scheduler Local Repo

Clone

Your Public RepoProject Public Repo

stonean/event_scheduler(on GitHub)

Public Repo

Private Repo

Page 4: Git102

Your project on GitHub• http://github.com/your-user-name/event_scheduler

Page 5: Git102

Clone your Repo• git clone

[email protected]:your-user-name/event_scheduler.git• cd event_scheduler• git pull

– Should say “Already up-to-date”

• This clone command adds a remote repo “origin” (explained in detail later)

• A clone is the entire history of the Git Repo– History of all changes– Log messages

Page 6: Git102

Modify a file

• vi (or your favorite editor) AUTHORS

• Add your name

• Save the file

Page 7: Git102

Git diff• git diff

• Shows what has changed since your last commit

Page 8: Git102

Git Status

• Shows the status of your git repo / working directory

• git status

Page 9: Git102

Git add

• Stages files to be committed

• git add AUTHORS

Page 10: Git102

Git Commit

• Commit your changes• git commit -v

• Options:– a Add all known files– v Verbose (show diff in editor)– m Command line commit message

Page 11: Git102

Git commit (cont.)

Page 12: Git102

Pushing/Pulling to OriginJasonnoble/event_scheduler

your-user-name/event_scheduler

hosh/event_scheduler

Other forks

event_scheduler Local Repo

git pull

origin

git push

Allowed by default

Requires permission

Remotes: origin upstream hosh

Page 13: Git102

Git Push

• Push your changes to GitHub• git push origin master

Page 14: Git102

Pushing/Pulling to upstreamJasonnoble/event_scheduler

your-user-name/event_scheduler

hosh/event_scheduler

Other forks

event_scheduler Local Repo

upstream origin hosh

Allowed by default

Requires permission

git push upstream master

git pull upstream master

Remotes: origin upstream hosh

Page 15: Git102

Add upstream• In order to pull updates from other sources, you need

to add a remote server

Page 16: Git102

Add upstream (cont.)

• git remote add upstream git://github.com/jasonnoble/event_scheduler.git

– “upstream” is whatever you want to call it– “upstream” for the repo you forked from is a

GitHub convention• git fetch upstream

– Fetches references from upstream

Page 17: Git102

Create local branch

• git checkout --track -b upstream-masterupstream/master– upstream-master is what you will call it locally

Page 18: Git102

Pull remote changes

• git checkout upstream-master• git pull

– pull updates from the remote

Page 19: Git102

Show diffs between branches

• git show-branch

Page 20: Git102

Merge branches

• git checkout master• git merge upstream-master

– Merges any changes committed to upstream-master into the master branch

• After merge, do a git push to push that merge to your public repo on GitHub

Page 21: Git102

Pulling from Upstream Lab

• I will commit a change to my public repo (upstream)

• You add upstream as a remote repo• Pull from the repo to get the changes

Page 22: Git102

Pushing/Pulling to other remote repos

Jasonnoble/event_scheduler

your-user-name/event_scheduler

hosh/event_scheduler

Other forks

event_scheduler Local Repo

upstream origin hosh

git push hosh master

git pull hosh master

Allowed by default

Requires permission

Remotes: origin upstream hosh

Page 23: Git102

Practice makes perfect

• Find a pair to work with• Add their remote repo

– git remote add _____ git://github…..

• Fetch refs– git fetch _______

• Create Branch– git checkout --track

-b ______ _____/master

Page 24: Git102

Practice makes perfect (Cont.)

• Make some changes, push them to origin/master and have your pair pull those changes

• Switch roles and you pull changes they’ve pushed

• Play with the “pull request” feature of GitHub