DO YOU WANT TO USE A VCS

547 views

Published on

Short introduction about vcs & git usage.

Aimed to introduce concept of version control system and git to people who didn't used git or vcs yet. Doesn't introduce deep part of git or operating policy for git. Just focus on simple introduction about main functionality and abstracted internal design.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
547
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

DO YOU WANT TO USE A VCS

  1. 1. DO YOU WANNA USE A VCS SeongJae Park <sj38.park@gmail.com>
  2. 2. Software Is Alive: Keeps Changing “How To Keep Software’s Moment?”
  3. 3. Life Of Files FileA ver 0 FileB ver 0
  4. 4. Life Of Files FileB Changed FileA ver 0 FileB ver 1
  5. 5. Life Of Files FileA Changed FileB ver 1 FileA ver 1
  6. 6. Life Of Files FileB Changed Again FileA ver 1 FileB ver 2
  7. 7. Software Is Alive: Keeps Changing “How To Keep Software’s Moment?” $ ls 0213_1st.tar 0239_2nd.tar.gzip 0305_final.zip 0307_final2.alz
  8. 8. VCS: Version Control System Help Versioning, History Managing
  9. 9. VCS: Version Control System Help Versioning, History Managing Get Back Specific Version’s Software Anytime
  10. 10. CVCS vs DVCS Centralized vs Distributed Not Detail This Time… Just Remember, CVCS is EVIL
  11. 11. git Distributed Version Control System Developed For Kernel SCM By Linus Torvalds “Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it ;)” - Linus Torvalds Just Remember: Cool Programmer Uses GIT
  12. 12. GIT, ALONE AND FREE “Yes, I’m Alone, But I’m Alone And Free” - Frozen -
  13. 13. git init: Create Repository $ mkdir olaf && cd olaf && git init `pwd` Is Now A Git Repository Can Version Control Files Inside `pwd` Now
  14. 14. git add: Add Files Under Git’s Admin $ echo “warmhug” > favor && git add favor They Will Be One Of Version Later
  15. 15. git status: Show Git’s Admin Status $ git status $ echo “anna” >> favor $ git status Changed? Deleted? Be Conflicted?
  16. 16. git commit: Make Version $ git commit -m “add warmhug as favor” Already Added Files Are New Version, Now
  17. 17. git log: Show History ● Development Cycle ○ While(!blamed) {Analysis(); Develop(); Blame();} Useful For Blaming ;)
  18. 18. git branch: Manage Branches git branch; git branch more_favor; git branch;
  19. 19. git checkout: Move To Other Branch git git git git git git checkout more_favor branch commit -am “add anna as favor, too” log checkout master log
  20. 20. git checkout: Move To Commit $ git checkout d8ec26 Branch Is Just Name Of Ref To Commit
  21. 21. Life Of Files Under Git, Internal FileA ver 0 FileB ver 0
  22. 22. Life Of Files Under Git, Internal git commit commit 1 FileA ver 0 FileB ver 0
  23. 23. Life Of Files Under Git, Internal HEAD git branch commit 1 FileA ver 0 FileB ver 0 master branch
  24. 24. Life Of Files Under Git, Internal HEAD FileB Changed master branch commit 1 FileA ver 0 FileB ver 0 FileB ver 1
  25. 25. Life Of Files Under Git, Internal HEAD git commit -a commit 1 FileA ver 0 FileB ver 0 master branch commit 2 FileB ver 1
  26. 26. Life Of Files Under Git, Internal HEAD git commit -a commit 1 FileA ver 0 FileB ver 0 master branch commit 2 FileB ver 1
  27. 27. Life Of Files Under Git, Internal HEAD Change FileA, FileB git commit -a commit 1 FileA ver 0 FileB ver 0 commit 2 FileB ver 1 master branch commit 3 FileA ver 1 FileB ver 2
  28. 28. Life Of Files Under Git, Internal HEAD git checkout -b newbranch commit 1 FileA ver 0 FileB ver 0 commit 2 FileB ver 1 master branch newbranch commit 3 FileA ver 1 FileB ver 2
  29. 29. Life Of Files Under Git, Internal HEAD Change FileA git commit -a commit 1 FileA ver 0 FileB ver 0 master branch commit 2 FileB ver 1 newbranch commit 3 commit 4 FileA ver 1 FileB ver 2 FileA ver 2
  30. 30. GIT IS AN OPEN DOOR “We Can Fix This Hand In Hand” - Frozen -
  31. 31. Communication Between Repos Git Repositories Can… Clone Push Commits To Pull Commits From Each Others
  32. 32. Protocol Between Repos HTTP:// HTTPS:// GIT:// SSH:// Even Usual File System
  33. 33. git clone: Clone Other’s Repo $ git clone /home/elsa/olaf
  34. 34. git remote: Manage Remote Repos $ git remote $ git remote add origin /home/elsa/olaf
  35. 35. git push: Push Changes To Remote $ echo “carrot” > noise && git add noise && git commit -am “add noise” $ git push
  36. 36. git pull: Fetch & Merge Changes May Cause Conflict In Some Scenario Remember To Make Things Clean Before Push
  37. 37. Free GIT Repo Hosting Service ● GitHub ○ Popular Service ○ Money For Private Repository ● Bitbucket ○ Less Than GitHub, But Popular ○ No Money For Private Repository
  38. 38. FAQ: When Commit? One Commit For One Logical Change
  39. 39. FAQ: How To Revert? git reset --soft HEAD^
  40. 40. FAQ: How To Revert Silently? $ git reset --hard HEAD^
  41. 41. FAQ: Howto @#$@!%^? Sorry, Next Time…
  42. 42. IT’s TIME TO SEE What You Can Do To Test The Limit And Breakthrough

×