![Page 1: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/1.jpg)
Version Control - A Brief Introduction to Git
CS356 Object-Oriented Design and Programming http://cs356.yusun.io October 8, 2014 !Yu Sun, Ph.D. http://yusun.io [email protected]
![Page 2: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/2.jpg)
Why Version Control?
![Page 3: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/3.jpg)
Maintain Multiple Versions
• Change version
• Safe backup
![Page 4: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/4.jpg)
Collaboration The problem to avoid
![Page 5: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/5.jpg)
Collaboration The lock-modify-unlock solution
![Page 6: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/6.jpg)
Collaboration The copy-modify-merge solution
![Page 7: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/7.jpg)
Collaboration The copy-modify-merge solution
![Page 8: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/8.jpg)
Monitor and Track Progress
Code Difference
Code Contribution
![Page 9: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/9.jpg)
Why Git?
![Page 10: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/10.jpg)
Why Git?
• Performance
• Github
• Popular
![Page 11: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/11.jpg)
Git History
![Page 12: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/12.jpg)
![Page 13: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/13.jpg)
Why Command-Line?
![Page 14: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/14.jpg)
Why Git Command-Line?
• Graphical clients are based on CLT
• Graphical clients could cause problems
• Integrated with shell scripts
• Graphical clients not always available
![Page 15: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/15.jpg)
Git Exercises
![Page 16: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/16.jpg)
1. Create Git Repositories
• git clone <repo>
• git init <repo>
local repository
remote repository
local repository
local repository
![Page 17: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/17.jpg)
2. Add/Commit/Push
• git add <path>
• git commit
• git push
working directory
staging area
local repository
remote repository
git add
git commit
git push
localremote
![Page 18: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/18.jpg)
3. Check Status
• git status
• git log
• git branch
![Page 19: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/19.jpg)
4. Sync Changes & Resolve Conflicts
• git pull -‐-‐rebase (referred approach)
• git pull
!
• git status
• clean up conflicts
• git add <conflicted file>
• git rebase -‐-‐continue
• git push
local repository
remote repository
git pull
localremote
![Page 20: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/20.jpg)
5. Branches
• git checkout -‐b <branch>
• git checkout <branch>
• git merge <branch>
Feature Branch
Master
![Page 21: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/21.jpg)
6. Git Undo
• Always backup first
• Google the soluAon
![Page 22: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/22.jpg)
Git Learning Resources
• http://git-scm.com/
• https://www.youtube.com/user/GitHubGuides
• Google it!
![Page 23: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/23.jpg)
Inclass Exercises
• Checkout git-exercise project
• Complete Exercise 1, 2, 3
• Finish Assignment 2
![Page 24: Version Control - A Brief Introduction to Gitcs356.yusun.io/slides/L05-Git.pdf · Git Basics Overview. Title: L05-Git Created Date: 10/8/2014 5:01:39 PM](https://reader035.vdocuments.net/reader035/viewer/2022071219/6057dfe94c7a3a2350425bd5/html5/thumbnails/24.jpg)
Git Basics Overview