SlideShare a Scribd company logo
DO YOU WANNA USE A VCS
SeongJae Park <sj38.park@gmail.com>
Software Is Alive: Keeps Changing
“How To Keep Software’s Moment?”
Life Of Files

FileA ver 0

FileB ver 0
Life Of Files
FileB Changed

FileA ver 0

FileB ver 1
Life Of Files
FileA Changed

FileB ver 1

FileA ver 1
Life Of Files
FileB Changed Again

FileA ver 1

FileB ver 2
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
VCS: Version Control System
Help Versioning, History Managing
VCS: Version Control System
Help Versioning, History Managing
Get Back Specific Version’s Software Anytime
CVCS vs DVCS
Centralized vs Distributed
Not Detail This Time…
Just Remember, CVCS is EVIL
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
GIT, ALONE AND FREE
“Yes, I’m Alone, But I’m Alone And Free”
- Frozen -
git init: Create Repository
$ mkdir olaf && cd olaf && git init
`pwd` Is Now A Git Repository
Can Version Control Files Inside `pwd` Now
git add: Add Files Under Git’s Admin
$ echo “warmhug” > favor && git add favor
They Will Be One Of Version Later
git status: Show Git’s Admin Status
$ git status
$ echo “anna” >> favor
$ git status
Changed? Deleted? Be Conflicted?
git commit: Make Version
$ git commit -m “add warmhug as favor”
Already Added Files Are New Version, Now
git log: Show History
● Development Cycle
○ While(!blamed) {Analysis(); Develop(); Blame();}

Useful For Blaming ;)
git branch: Manage Branches
git branch;
git branch more_favor;
git branch;
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
git checkout: Move To Commit
$ git checkout d8ec26
Branch Is Just Name Of Ref To Commit
Life Of Files Under Git, Internal

FileA ver 0

FileB ver 0
Life Of Files Under Git, Internal
git commit

commit 1

FileA ver 0

FileB ver 0
Life Of Files Under Git, Internal
HEAD

git branch

commit 1

FileA ver 0

FileB ver 0

master
branch
Life Of Files Under Git, Internal
HEAD

FileB Changed

master
branch

commit 1

FileA ver 0

FileB ver 0

FileB ver 1
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
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
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
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
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
GIT IS AN OPEN DOOR
“We Can Fix This Hand In Hand”
- Frozen -
Communication Between Repos
Git Repositories Can…
Clone
Push Commits To
Pull Commits From
Each Others
Protocol Between Repos
HTTP://
HTTPS://
GIT://
SSH://
Even Usual File System
git clone: Clone Other’s Repo
$ git clone /home/elsa/olaf
git remote: Manage Remote Repos
$ git remote
$ git remote add origin /home/elsa/olaf
git push: Push Changes To Remote
$ echo “carrot” > noise && git add noise 
&& git commit -am “add noise”
$ git push
git pull: Fetch & Merge Changes
May Cause Conflict In Some Scenario
Remember To Make Things Clean Before Push
Free GIT Repo Hosting Service
● GitHub
○ Popular Service
○ Money For Private Repository

● Bitbucket
○ Less Than GitHub, But Popular
○ No Money For Private Repository
FAQ: When Commit?
One Commit For One Logical Change
FAQ: How To Revert?
git reset --soft HEAD^
FAQ: How To Revert Silently?
$ git reset --hard HEAD^
FAQ: Howto @#$@!%^?
Sorry, Next Time…
IT’s TIME TO SEE
What You Can Do
To Test The Limit And Breakthrough

More Related Content

PDF
Git inter-snapshot public
PDF
Let the contribution begin
PDF
Git internals
PDF
Introduction to Git for Non-Developers
PDF
いつやるの?Git入門
PDF
JPA 스터디 Week1 - 하이버네이트, 캐시
PDF
[로켓 자바] Part 1 성능 튜닝 마인드 확립
PDF
Git, from the beginning
Git inter-snapshot public
Let the contribution begin
Git internals
Introduction to Git for Non-Developers
いつやるの?Git入門
JPA 스터디 Week1 - 하이버네이트, 캐시
[로켓 자바] Part 1 성능 튜닝 마인드 확립
Git, from the beginning

What's hot (20)

PDF
Let the contribution begin (EST futures)
PPTX
Introduction to Git / Github
KEY
Git Basics - RubyFest 2009
PDF
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
PDF
Git and github - Verson Control for the Modern Developer
PDF
Tracking huge files with Git LFS (GlueCon 2016)
PDF
Inside GitHub with Chris Wanstrath
PDF
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
PDF
Intro to Git and GitHub
PDF
Tracking large game assets with Git LFS
PDF
Git and GitHub at the San Francisco JUG
PDF
VCS for Teamwork - GIT Workshop
PDF
Git - a powerful version control tool
PDF
Week7 bean life cycle
PDF
Intro to git (UT biocomputing 2015)
PDF
Git training v10
PPTX
PDF
떠먹는 '오브젝트' Ch02 객체지향 프로그래밍
PDF
Starting with Git & GitHub
PDF
Learning Git with Workflows
Let the contribution begin (EST futures)
Introduction to Git / Github
Git Basics - RubyFest 2009
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
Git and github - Verson Control for the Modern Developer
Tracking huge files with Git LFS (GlueCon 2016)
Inside GitHub with Chris Wanstrath
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Intro to Git and GitHub
Tracking large game assets with Git LFS
Git and GitHub at the San Francisco JUG
VCS for Teamwork - GIT Workshop
Git - a powerful version control tool
Week7 bean life cycle
Intro to git (UT biocomputing 2015)
Git training v10
떠먹는 '오브젝트' Ch02 객체지향 프로그래밍
Starting with Git & GitHub
Learning Git with Workflows
Ad

Similar to DO YOU WANT TO USE A VCS (20)

PDF
Learning git
PDF
Living with Files More Happily
PPTX
Version controll.pptx
KEY
Git Magic: Versioning Files like a Boss
PDF
Git slides
PDF
Becoming a Git Master - Nicola Paolucci
PPTX
Git training (basic)
PPTX
PDF
Exprimiendo GIT
PDF
Advanced Git Tutorial
PDF
Git essentials
PDF
Vincit Teatime 2015.2 - Otto Kekäläinen: Don't be a git
PPTX
git.ppt.pptx power point presentation got Google internet
KEY
Let's Git this Party Started: An Introduction to Git and GitHub
PPTX
Get going with_git_ppt
KEY
Gitting the Most From Git
PPTX
Git_new.pptx
PDF
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
PPT
Talk to git
PPT
Fundamentals and basics of Git and commands
Learning git
Living with Files More Happily
Version controll.pptx
Git Magic: Versioning Files like a Boss
Git slides
Becoming a Git Master - Nicola Paolucci
Git training (basic)
Exprimiendo GIT
Advanced Git Tutorial
Git essentials
Vincit Teatime 2015.2 - Otto Kekäläinen: Don't be a git
git.ppt.pptx power point presentation got Google internet
Let's Git this Party Started: An Introduction to Git and GitHub
Get going with_git_ppt
Gitting the Most From Git
Git_new.pptx
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
Talk to git
Fundamentals and basics of Git and commands
Ad

More from SeongJae Park (20)

PDF
Biscuit: an operating system written in go
PDF
GCMA: Guaranteed Contiguous Memory Allocator
PDF
Linux Kernel Memory Model
PDF
An Introduction to the Formalised Memory Model for Linux Kernel
PDF
Design choices of golang for high scalability
PDF
Brief introduction to kselftest
PDF
Understanding of linux kernel memory model
PDF
Porting golang development environment developed with golang
PDF
gcma: guaranteed contiguous memory allocator
PDF
An introduction to_golang.avi
PDF
Develop Android/iOS app using golang
PDF
Develop Android app using Golang
PDF
Sw install with_without_docker
PDF
(Live) build and run golang web server on android.avi
PDF
Deep dark-side of git: How git works internally
PDF
Deep dark side of git - prologue
PDF
Experimental android hacking using reflection
PDF
Hacktime for adk
PDF
Touch Android Without Touching
Biscuit: an operating system written in go
GCMA: Guaranteed Contiguous Memory Allocator
Linux Kernel Memory Model
An Introduction to the Formalised Memory Model for Linux Kernel
Design choices of golang for high scalability
Brief introduction to kselftest
Understanding of linux kernel memory model
Porting golang development environment developed with golang
gcma: guaranteed contiguous memory allocator
An introduction to_golang.avi
Develop Android/iOS app using golang
Develop Android app using Golang
Sw install with_without_docker
(Live) build and run golang web server on android.avi
Deep dark-side of git: How git works internally
Deep dark side of git - prologue
Experimental android hacking using reflection
Hacktime for adk
Touch Android Without Touching

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Network Security Unit 5.pdf for BCA BBA.
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Reach Out and Touch Someone: Haptics and Empathic Computing
Diabetes mellitus diagnosis method based random forest with bat algorithm
Digital-Transformation-Roadmap-for-Companies.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
20250228 LYD VKU AI Blended-Learning.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Programs and apps: productivity, graphics, security and other tools
The Rise and Fall of 3GPP – Time for a Sabbatical?
The AUB Centre for AI in Media Proposal.docx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation theory and applications.pdf
sap open course for s4hana steps from ECC to s4
Network Security Unit 5.pdf for BCA BBA.

DO YOU WANT TO USE A VCS

  • 1. DO YOU WANNA USE A VCS SeongJae Park <sj38.park@gmail.com>
  • 2. Software Is Alive: Keeps Changing “How To Keep Software’s Moment?”
  • 3. Life Of Files FileA ver 0 FileB ver 0
  • 4. Life Of Files FileB Changed FileA ver 0 FileB ver 1
  • 5. Life Of Files FileA Changed FileB ver 1 FileA ver 1
  • 6. Life Of Files FileB Changed Again FileA ver 1 FileB ver 2
  • 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. VCS: Version Control System Help Versioning, History Managing
  • 9. VCS: Version Control System Help Versioning, History Managing Get Back Specific Version’s Software Anytime
  • 10. CVCS vs DVCS Centralized vs Distributed Not Detail This Time… Just Remember, CVCS is EVIL
  • 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. GIT, ALONE AND FREE “Yes, I’m Alone, But I’m Alone And Free” - Frozen -
  • 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. git add: Add Files Under Git’s Admin $ echo “warmhug” > favor && git add favor They Will Be One Of Version Later
  • 15. git status: Show Git’s Admin Status $ git status $ echo “anna” >> favor $ git status Changed? Deleted? Be Conflicted?
  • 16. git commit: Make Version $ git commit -m “add warmhug as favor” Already Added Files Are New Version, Now
  • 17. git log: Show History ● Development Cycle ○ While(!blamed) {Analysis(); Develop(); Blame();} Useful For Blaming ;)
  • 18. git branch: Manage Branches git branch; git branch more_favor; git branch;
  • 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. git checkout: Move To Commit $ git checkout d8ec26 Branch Is Just Name Of Ref To Commit
  • 21. Life Of Files Under Git, Internal FileA ver 0 FileB ver 0
  • 22. Life Of Files Under Git, Internal git commit commit 1 FileA ver 0 FileB ver 0
  • 23. Life Of Files Under Git, Internal HEAD git branch commit 1 FileA ver 0 FileB ver 0 master branch
  • 24. Life Of Files Under Git, Internal HEAD FileB Changed master branch commit 1 FileA ver 0 FileB ver 0 FileB ver 1
  • 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. 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. 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. 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. 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. GIT IS AN OPEN DOOR “We Can Fix This Hand In Hand” - Frozen -
  • 31. Communication Between Repos Git Repositories Can… Clone Push Commits To Pull Commits From Each Others
  • 33. git clone: Clone Other’s Repo $ git clone /home/elsa/olaf
  • 34. git remote: Manage Remote Repos $ git remote $ git remote add origin /home/elsa/olaf
  • 35. git push: Push Changes To Remote $ echo “carrot” > noise && git add noise && git commit -am “add noise” $ git push
  • 36. git pull: Fetch & Merge Changes May Cause Conflict In Some Scenario Remember To Make Things Clean Before Push
  • 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. FAQ: When Commit? One Commit For One Logical Change
  • 39. FAQ: How To Revert? git reset --soft HEAD^
  • 40. FAQ: How To Revert Silently? $ git reset --hard HEAD^
  • 42. IT’s TIME TO SEE What You Can Do To Test The Limit And Breakthrough