git atlrug

22

Upload: jason-noble

Post on 07-May-2015

1.067 views

Category:

Technology


3 download

DESCRIPTION

Intro to Git slide deck give as a presentation to the Atlanta Ruby Users Group.Covers Forking, pushing and pulling to Github, Pull requests

TRANSCRIPT

Page 1: Git Atlrug
Page 2: Git Atlrug

Remote repos process(single committer)

Public RepoLocated on Server (Github)

Private RepoLocated on your local machine

git push

Make file changesStage ChangesCommit Changes

git add filenamegit commit -m ‘…’ vi filename

Page 3: Git Atlrug

Remote repos process(multiple committers)

Public RepoLocated on Server (Github)

Private RepoLocated on your local machine

1) git push

Make file changesStage ChangesCommit Changes

git add filenamegit commit -m ‘…’ vi filename

Bob’s Private RepoLocated on Bob’s local machine

2) git pull

Page 4: Git Atlrug

Remote repos process(multiple committers)

Public RepoLocated on Server (Github)

Private RepoLocated on your local machine

2) git pull

Bob’s Private RepoLocated on Bob’s local machine

Make file changesStage ChangesCommit Changes

git add filenamegit commit -m ‘…’ vi filename

1) git push

Page 5: Git Atlrug

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 6: Git Atlrug

Open source project on GitHub

• http://github.com/jasonnoble/event_scheduler– Click Fork

Page 7: Git Atlrug

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 8: Git Atlrug

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

Page 9: Git Atlrug

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 10: Git Atlrug

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 11: Git Atlrug

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

to add a remote server

Page 12: Git Atlrug

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 13: Git Atlrug

Create local branch

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

Page 14: Git Atlrug

Pull remote changes

• git checkout upstream-master• git pull

– pull updates from the remote

Page 15: Git Atlrug

Show diffs between branches

• git show-branch

Page 16: Git Atlrug

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 17: Git Atlrug

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 18: Git Atlrug

Modify a file

• vi (or your favorite editor) AUTHORS

• Add your name

• Save the file

• Commit the change

Page 19: Git Atlrug

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 20: Git Atlrug

Git Push

• Push your changes to GitHub• git push origin master

Page 21: Git Atlrug

Pull Requests

• After you push new code to your forked repo, you can request others pull your requests

• http://github.com/your-user-name/event_scheduler• Click Pull Request• Enter a quick message about what you changed• Enter receipients

– All users who have forked upstream are listed– Check users as requested

Page 22: Git Atlrug

Pull Requests (cont.)