Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

Version Control ThinkVitamin Slide 1 Version Control ThinkVitamin Slide 2 Version Control ThinkVitamin Slide 3 Version Control ThinkVitamin Slide 4 Version Control ThinkVitamin Slide 5 Version Control ThinkVitamin Slide 6 Version Control ThinkVitamin Slide 7 Version Control ThinkVitamin Slide 8 Version Control ThinkVitamin Slide 9 Version Control ThinkVitamin Slide 10 Version Control ThinkVitamin Slide 11 Version Control ThinkVitamin Slide 12 Version Control ThinkVitamin Slide 13 Version Control ThinkVitamin Slide 14 Version Control ThinkVitamin Slide 15 Version Control ThinkVitamin Slide 16 Version Control ThinkVitamin Slide 17 Version Control ThinkVitamin Slide 18 Version Control ThinkVitamin Slide 19 Version Control ThinkVitamin Slide 20 Version Control ThinkVitamin Slide 21 Version Control ThinkVitamin Slide 22 Version Control ThinkVitamin Slide 23 Version Control ThinkVitamin Slide 24 Version Control ThinkVitamin Slide 25 Version Control ThinkVitamin Slide 26 Version Control ThinkVitamin Slide 27 Version Control ThinkVitamin Slide 28 Version Control ThinkVitamin Slide 29 Version Control ThinkVitamin Slide 30 Version Control ThinkVitamin Slide 31 Version Control ThinkVitamin Slide 32 Version Control ThinkVitamin Slide 33 Version Control ThinkVitamin Slide 34 Version Control ThinkVitamin Slide 35 Version Control ThinkVitamin Slide 36 Version Control ThinkVitamin Slide 37 Version Control ThinkVitamin Slide 38 Version Control ThinkVitamin Slide 39 Version Control ThinkVitamin Slide 40 Version Control ThinkVitamin Slide 41 Version Control ThinkVitamin Slide 42 Version Control ThinkVitamin Slide 43 Version Control ThinkVitamin Slide 44 Version Control ThinkVitamin Slide 45 Version Control ThinkVitamin Slide 46 Version Control ThinkVitamin Slide 47 Version Control ThinkVitamin Slide 48 Version Control ThinkVitamin Slide 49 Version Control ThinkVitamin Slide 50 Version Control ThinkVitamin Slide 51 Version Control ThinkVitamin Slide 52 Version Control ThinkVitamin Slide 53 Version Control ThinkVitamin Slide 54 Version Control ThinkVitamin Slide 55 Version Control ThinkVitamin Slide 56 Version Control ThinkVitamin Slide 57 Version Control ThinkVitamin Slide 58 Version Control ThinkVitamin Slide 59 Version Control ThinkVitamin Slide 60 Version Control ThinkVitamin Slide 61 Version Control ThinkVitamin Slide 62 Version Control ThinkVitamin Slide 63 Version Control ThinkVitamin Slide 64 Version Control ThinkVitamin Slide 65 Version Control ThinkVitamin Slide 66 Version Control ThinkVitamin Slide 67 Version Control ThinkVitamin Slide 68 Version Control ThinkVitamin Slide 69 Version Control ThinkVitamin Slide 70 Version Control ThinkVitamin Slide 71 Version Control ThinkVitamin Slide 72 Version Control ThinkVitamin Slide 73 Version Control ThinkVitamin Slide 74 Version Control ThinkVitamin Slide 75 Version Control ThinkVitamin Slide 76 Version Control ThinkVitamin Slide 77 Version Control ThinkVitamin Slide 78 Version Control ThinkVitamin Slide 79 Version Control ThinkVitamin Slide 80 Version Control ThinkVitamin Slide 81 Version Control ThinkVitamin Slide 82 Version Control ThinkVitamin Slide 83 Version Control ThinkVitamin Slide 84
Upcoming SlideShare
K'House Presentation at Ignite Philly 8
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

Version Control ThinkVitamin

Download to read offline

Chris Nagele and Alex Hillman of Wildbit (makers of http://beanstalkapp.com) give an intro to source control and Git for designers and VCS newbies.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Version Control ThinkVitamin

  1. 1. Version Control Chris Nagele Alex Hillman
  2. 2. Today's Agenda <ul><ul><li>A bit about us </li></ul></ul><ul><ul><li>A bit about version control </li></ul></ul><ul><ul><li>A practical intro to Git </li></ul></ul>
  3. 3. We're from Wildbit <ul><li>Chris Nagele </li></ul><ul><li>Founder  </li></ul><ul><ul><li>Transitioned business from consulting to product </li></ul></ul><ul><ul><li>International Team - 7 countries represented </li></ul></ul><ul><ul><li>Writer - ThinkVitamin, etc </li></ul></ul><ul><ul><li>Spends days in the server closet  </li></ul></ul><ul><li>Alex Hillman </li></ul><ul><li>Business Development </li></ul><ul><ul><li>Web development background </li></ul></ul><ul><ul><li>Cofounded Indy Hall - Coworking in Philadelphia </li></ul></ul><ul><ul><li>Public Speaker - SXSW, etc </li></ul></ul><ul><ul><li>Spends days communicating with our customers </li></ul></ul>
  4. 4. Beanstalkapp.com Go sign up for a free trial now!
  5. 5. Why Version Control?  
  6. 6. Why Version Control? cp index.html index-v12-old2.html
  7. 7. Why Version Control? cp index.html index-v12-old2.html There has to be a better way
  8. 8. The Old Way <ul><ul><li>Unmaintainable filesystems and filenames </li></ul></ul><ul><ul><li>Accidental overwriting of revisions </li></ul></ul><ul><ul><li>Updates on live server </li></ul></ul><ul><ul><li>Communicate with team via e-mail </li></ul></ul><ul><ul><li>Multiple server management nightmare  </li></ul></ul><ul><li>  </li></ul>
  9. 9. The New Way <ul><ul><li>Filenames stay the same! </li></ul></ul><ul><ul><li>Make changes with confidence - even revert! </li></ul></ul><ul><ul><li>Source control as &quot;source&quot; for updates </li></ul></ul><ul><ul><li>Code as communication with the whole team </li></ul></ul><ul><ul><li>Deploy different versions to different servers easily </li></ul></ul><ul><li>  </li></ul>
  10. 10. Vocabulary Lesson <ul><ul><li>Repository </li></ul></ul><ul><ul><li>Track Changes </li></ul></ul><ul><ul><li>Add or Update Files </li></ul></ul><ul><ul><li>Commit Changes </li></ul></ul><ul><ul><li>Revision </li></ul></ul><ul><ul><li>Revert </li></ul></ul><ul><ul><li>Branch </li></ul></ul><ul><ul><li>Merge </li></ul></ul><ul><ul><li>Diff  </li></ul></ul>
  11. 11. Version Control Options  
  12. 12. Centralized  
  13. 13. Centralized Client & Server Relationship
  14. 14. Centralized Subversion -  <ul><li>Benefits </li></ul><ul><ul><li>Easy to understand </li></ul></ul><ul><ul><li>More control over users and access </li></ul></ul><ul><ul><li>More GUI & IDE clients </li></ul></ul><ul><ul><li>Simple to get started </li></ul></ul><ul><ul><li>Free & Open Source! </li></ul></ul><ul><li>Disadvantages </li></ul><ul><ul><li>Dependent on a server </li></ul></ul><ul><ul><li>Hard to manage a server (and backups!) </li></ul></ul><ul><ul><li>Slower </li></ul></ul><ul><ul><li>Some advanced tasks are very difficult </li></ul></ul>
  15. 15. Decentralized (also known as Distributed) 
  16. 16. Decentralized A Network of Complete &quot;Repositories&quot;
  17. 17. Decentralized Git  & Mercurial  <ul><li>Benefits </li></ul><ul><ul><li>Powerful and detailed change tracking (you commit more often) </li></ul></ul><ul><ul><li>No server necessary - everything is local </li></ul></ul><ul><ul><li>It's fast to branch and merge  </li></ul></ul><ul><ul><li>Free & Open Source! </li></ul></ul><ul><li>Disadvantages </li></ul><ul><ul><li>More to learn in order to  get started </li></ul></ul><ul><ul><li>Not as many GUI or IDE clients </li></ul></ul><ul><ul><li>It doesn't protect you from yourself </li></ul></ul>
  18. 18. Any questions so far?  
  19. 19. Get Git!  
  20. 20. Get Git! http://bit.ly/downloadgit - for OSX
  21. 21. Get Git! http://bit.ly/downloadgit - for OSX Other platform? Sorry! http://git-scm.com
  22. 22. Get Sample Files http://bit.ly/samplefiles
  23. 23. Terminal  
  24. 24. Global Config  
  25. 25. Global Config <ul><li>git config --global user.name &quot;Alex Hillman&quot; </li></ul><ul><li>git config --global user.email &quot;alex@wildbit.com&quot;   </li></ul>
  26. 26. Global Config <ul><li>git config --global user.name &quot;Alex Hillman&quot; </li></ul><ul><li>git config --global user.email &quot;alex@wildbit.com&quot;   </li></ul><ul><li>Verify: </li></ul><ul><li>git config --list </li></ul>
  27. 27. Global Config - Bonus! <ul><li>git config --global color.status auto </li></ul><ul><li>git config --global color.branch auto     </li></ul>
  28. 28. Global Config - Textmate Bonus! <ul><li>git config --global core.editor &quot;mate -w&quot;     </li></ul><ul><li>Or replace &quot;mate -w&quot; with your favorite text editor </li></ul>
  29. 29. Command Line Basics <ul><li>    pwd - present working directory </li></ul><ul><li>    cd - change directory </li></ul><ul><li>    cd .. - change directory up one folder level </li></ul><ul><li>    ls - list everything in present working directory </li></ul><ul><li>    mkdir - make directory </li></ul><ul><li>    cp - copy </li></ul><ul><li>    mv - move </li></ul>
  30. 30. My First Repository You never forget your first
  31. 31. Ignoring Files It's nothing personal
  32. 32. Git Status What the hell is going on?
  33. 33. The Stage And how to get your files on it
  34. 34. PSA: Beware of  Empty Folders!  
  35. 35. Committing No diamond necessary
  36. 36. Committing Changes A little about &quot;insertions&quot; and &quot;deletions&quot; <ul><ul><li>Git is about &quot;content&quot; </li></ul></ul><ul><ul><li>An insertion adds a new line of content </li></ul></ul><ul><ul><li>A deletion removes a line of content </li></ul></ul><ul><ul><li>A change is actually a deletion + an insertion </li></ul></ul><ul><li>  </li></ul>
  37. 37. Committing Changes A little about &quot;insertions&quot; and &quot;deletions&quot; <ul><ul><li>Git is about &quot;content&quot; </li></ul></ul><ul><ul><li>An insertion adds a new line of content </li></ul></ul><ul><ul><li>A deletion removes a line of content </li></ul></ul><ul><ul><li>A change is actually a deletion + an insertion </li></ul></ul><ul><ul><li>Every change is very small, so commit often </li></ul></ul><ul><ul><li>More commits = more communication </li></ul></ul>
  38. 38. Inline Commits For quickies
  39. 39. Verbose Commits More to say? That's ok!
  40. 40. Stash Git's &quot;Clipboard&quot;
  41. 41. Commits as Communication Tasks, tickets, links, & more
  42. 42. Log What happened and when?
  43. 43. Remotes Don't change that channel
  44. 44. Sign up for Beanstalk! It’s ok…we’ll wait….
  45. 45. Keys
  46. 46. Keys <ul><li>ssh-keygen -t rsa </li></ul>
  47. 47. Keys <ul><li>ssh-keygen -t rsa </li></ul><ul><li>cat ~/.ssh/id_rsa.pub | pbcopy </li></ul>
  48. 48. Keys
  49. 49. Creating a Remote The Easy Way – with Beanstalk
  50. 50. git remote add
  51. 51. git push
  52. 52. git push beanstalk master
  53. 53. Remotes Connecting some dots between the command line and Beanstalk
  54. 54. Remotes I Think I’m A Clone Now
  55. 55. Catastophe Delete your work
  56. 56. git clone
  57. 57. git remote
  58. 58. git remote rename
  59. 59. git pull
  60. 60. git pull beanstalk master
  61. 61. Branches
  62. 62. git branch
  63. 63. git checkout
  64. 64. Branches + Remotes
  65. 65. git push beanstalk ________ where ________ is the name of your branch
  66. 66. git push beanstalk colorchange
  67. 67. git pull beanstalk colorchange
  68. 68. Integrating Changes Without A Time Traveling DeLorean.
  69. 69. Rebase
  70. 70. Rebase Check out progit.org
  71. 71. Merge
  72. 72. Make sure you’re on the branch you want to merge TO
  73. 73. git merge __________ Where __________ is the name of your branch you wish to merge in.
  74. 74. Keep that Repo Tidy
  75. 75. git branch –d __________ Where __________ is the name of your branch you wish to delete.
  76. 76. Conflict Resolution
  77. 77. You didn’t commit yet!
  78. 78. You didn’t commit yet! <ul><li>error: Your local changes to the following files would be overwritten by merge: </li></ul><ul><li>index.php </li></ul><ul><li>Please, commit your changes or stash them before you can merge. </li></ul><ul><li>Aborting </li></ul>
  79. 79. You Did Commit! But…
  80. 80. You Did Commit! But… <ul><li>* branch master -> FETCH_HEAD </li></ul><ul><li>Auto-merging index.php </li></ul><ul><li>CONFLICT (content): Merge conflict in index.php </li></ul><ul><li>Automatic merge failed; fix conflicts and then commit the result. </li></ul>
  81. 81. Conflict Delimiters
  82. 82. Commit, then push!
  83. 83. Where to learn more
  84. 84. Thank You! Chris Nagele – Alex Hillman http://www.beanstalkapp.com @beanstalkapp

Chris Nagele and Alex Hillman of Wildbit (makers of http://beanstalkapp.com) give an intro to source control and Git for designers and VCS newbies.

Views

Total views

1,318

On Slideshare

0

From embeds

0

Number of embeds

2

Actions

Downloads

7

Shares

0

Comments

0

Likes

0

×