A revised/minimized version of Nick Quaranto's (http://www.slideshare.net/qrush ) presentation on the same topic. This revised version was used to present Git to a group of students at ECPI who were not yet familiar with the concepts of version control or Git.
2. whoami
• President of BigBlueHat
– a web manufacturing company
– we build web stuff
• We built BlueInk
– a content management system
• Building sites since the late 90's
– I remember Netscape 3
3. Ve rs io n Co ntro l
c o uld s a v e y o ur
life .
4. Or a t le a s t y o ur
jo b/pro je c t/ide a /
s a nity /g pa
5. The Basics
• Keep “backup” copies of files whenever
you want
• Restore those copies quickly and easily
• Share the files and the change s with other
developers
• Integrate their changes into your files
15. What's changed?
git status
On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working
directory)
#
# modified: index.php
#
16. What's changed? (cont)
git diff
diff --git a/index.php b/index.php
index 9e7353c..1764d3e 100644
--- a/index.php
+++ b/index.php
@@ -24,4 +24,5 @@
require_once 'webroot'.DIRECTORY_SEPARATOR.'index.php';
-?>
No newline at end of file
+echo 'an example change';
+?>
17. Birds Eye View
• git log
• gitk
– a graphical view of your repository
• GitX
– Mac OS X app for doing the above
– also handy for commit review
– prettier than gitk
20. Branching
• Another great reason to use Version
Control—particularly git
• “Your first idea is never your best idea”
• Branches give you the freedom to change
things...whenever
21. Branching (cont)
• git branch experimental
– creates a branch named 'experimental'
• git branch
– shows a list of branches:
• git checkout experimental
– switch to the new branch
22. The Staging Area (cont)
• All that happened in the same directory
– sort of...
• Your version histories actually in the .git
folder
• so, when you checkout a branch git
changes all the files outside of .git to
match that branches content
• git it?
23. Put it back together again
• git checkout master
• git merge experimental
• if all went well, then your done
• if not:
• git mergetool
• git commit -a
38. Other Hosting Options
• Public Only • Public and Private
– repo.or.cz – GitHub.com
– Gitorious.org – CodaSet.com
• Private Only
– Unfuddle.com
– codebasehq.com
39. How to Contribute
1. Fork a repository at GitHub
2. Clone and connect your local repository
3. Write tests, implement functionality
4. Commit your local changes
5. Push your changes to your fork
6. Make a pull request
7. Profit!!
40. git log
• Kudos to Sc o tt Cha c o n who made
– http://git-scm.com
– http://whygitisbetterthanx.com
• And to Mic ha e l Ha rtl
– for Building the Insoshi Social Network
• Wikipedia too.
nick@quaran.to byoung@bigbluehat.com
http://litanyagainstfear.com http://bigbluehat.com