2. Get Git
• On Matrix
•
I have accounts for you
• On Windows
•
http://msysgit.github.io
• On OS X
•
brew install git
• On Linux
•
sudo apt-get install git
• Otherwise
•
http://git-scm.com
3. About Me
Django and JavaScript Developer
Founder @ The Boulevard Platform
Engineer @ FoxyProxy
Created open source projects:
BitBucket Release Note Generator
django-email-changer
Exploit Me Suite
18. What’s The Status Of My Files
Right Now?
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#
(use "git rm --cached <file>..." to
unstage)
#
# new file:
index.html
#
21. Commit File Exercise Result
Committer: Tom Aratyn <mystic@nelson.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config --global user.name "Your Name"
git config --global user.email you@example.com
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 foo
22. The Log
Git keeps a log of everything you commit,
who wrote authored it, and who committed
it.
29. Configuring Git Exercise Result
$ cat ~/.gitconfig
[user]
name = Tom Aratyn
email = "tom@aratyn.name"
30. Changing History
There are many ways to change history in
git.
We're only going to look at one way:
Amend the last commit.
31. Change The Last Commit Exercise
$ git commit --amend -m "initial
commit with an html file"
$ # has the author changed?
$ gitk
32. Author Vs. Committer
Git is made from from the ground up for
multiple developer projects (Linux).
Large projects often distinguish between the
author (who wrote the patch/code) and the
committer (who let it into the blessed
repository)
33. Update the Author Exercise
$ git commit --amend --resetauthor
# why did the screen change ?
# type in ":wq" to leave vim.
34. How To Remove A File?
What if we committed a file we no longer
need can we get rid of it?
Yes & No
36. No, It'll Be In Past Versions
The whole point of version control is you can always recover old
files.
37. Remove A File Exercise
$ git rm index.html
$ ls
$ #Notice how the file is now gone
$ git status
$ #Notice how the file is staged
$ git commit -m "Removed
index.html"
39. Branching
Fast and easy branching is git's killer
feature.
Branches let development progress on
multiple fronts separately and
simultaneously.
40. Check Your Branch Exercise
$ git branch
$ git branch –a
$ # What's the difference between
the two commands?
41. Create A Branch Exercise
$ git branch workshop-example
$ git branch
$ # what branch are you on?
42. Switch Branch Exercise
$ git checkout workshop-example
$ git branch
$ # now what branch are you on?
43. Switch To A New Branch
Immediately Exercise
$ git checkout -b fix-bug-123
$ git branch
$ gitk
44. Making A Change On A Branch
Exercise
$ # edit index.html
$ git add index.html
$ git commit -m "Added some initial
html"
45. Merging
Merging is really git's killer feature
Because branching without merging is pretty
useless
See CVS
46. Merging Process
1. Go to the branch you want to merge into
• Often the branch you branched off of.
• Usually "master" or "develop"
2. Do the merge
47. Two Three types of merges
1. Fast Forward Merge
2. Basic Merge
a. Conflicted Merge
48. Only available when the branch can be cleanly applied onto your
current branch
Fast Forward Merge
49. Fast Forward Merge Exercise
$ # (assuming you have a change on
fix-bug-123 - use gitk to check)
$ git checkout master
$ git merge fix-bug-123
$ gitk
50. Basic Merge Exercise
Prep
Add add a div on the master
branch
Change the title on the fixbug-123 branch
Recall
git checkout
git add
git commit
54. Sharing Is Caring
So far everything we've done is on the same
repo but projects need to be shared.
Git lets you push your changes to others
and pull the changes others made.
55. Pushing Exercise
$ # Recall that we cloned our bare
repo
$ git push origin master
$ cd ../workshop.bare.git
$ git log
56. Pulling Exercise
Prep
1. Clone the bare repo
again
•
Call it workshop.2.git
2. Commit a change to
workshop.git
3. Push the change
Recall
git clone
git add
git commit
git push
61. About Today
What we covered
• Creating Repos
• Checking Out
• Committing
• Basic Branching
• Basic Merging
• Pushing & Pulling
What we didn't
• git reset
• Changing history
• Rebasing
• Adding/Removing
Remotes
• Partial Staging
62. Where to next?
Learn more at from "Pro Git"
http://git-scm.com/book
Start Your Project:
Free Open Source Repos
http://github.com
Free Private Repos
http://bitbucket.org
GUI: http://SourceTreeApp.com