Understanding and Practicing Git

Preview:

DESCRIPTION

HPDS lab tutorial on Git Date: 6/18 (Wed.) Author: Tzu-Li Tai

Citation preview

Understanding and PracticingUnderstanding and Practicing

GitGit

Tzu-Li TaiHPDS LaboratoryDept. of Electrical EngineeringNational Cheng Kung UniversityTainan, Taiwan

Why do I need to learn Git?

2

242

Why do I need to learn Git?

342

What is Git?

Git - Version Control System (VCS)

● Concurrent Versions System (CVS)

● Apache Subversion (SVN)

442

What will be taught today?

Understand the basics of Git … and some HANDS-ON practice

542

What will be taught today?

Understand how to code with others using Git... and the Cloud

… and a little moreHANDS-ON practice for that

642

Git Basics: Commit, Checkout, Merge

Commit

git commit7

42

code_A.py

code_B.py

Git Basics: Commit, Checkout, Merge

842

code_A*.py

code_B.py

A*.py

Git Basics: Commit, Checkout, Merge

Buffer everything before you actually make the change!

git add code_a.pygit commit

942

Project History:A series of commits

Git Basics: Commit, Checkout, Merge

1042

master

feature

Git Basics: Commit, Checkout, Merge

git branch featuregit checkout feature or

git checkout -b feature

1142

master

feature

Git Basics: Commit, Checkout, Merge

git add XXXgit commit

1242

master

feature

Git Basics: Commit, Checkout, Merge

git add XXXgit commit

1342

master

feature

Git Basics: Commit, Checkout, Merge

git add XXXgit commit

1442

master

bug-fix

feature

Git Basics: Commit, Checkout, Merge

git checkout mastergit checkout -b bug-fix

1542

master

bug-fix

feature

Git Basics: Commit, Checkout, Merge

git add XXXgit commit

1642

master

bug-fix

feature

Git Basics: Commit, Checkout, Merge

git checkout master

1742

master

bug-fix

feature

Git Basics: Commit, Checkout, Merge

git checkout mastergit merge bug-fix

1842

master

bug-fix

feature

Git Basics: Commit, Checkout, Merge

git checkout mastergit merge bug-fixgit branch -d bug-fix 19

42

master

feature

Git Basics: Commit, Checkout, Merge

git checkout featuregit merge bug-fix

2042

master

feature

Git Basics: Commit, Checkout, Merge

git add XXXgit commit

2142

master

feature

Git Basics: Commit, Checkout, Merge

git checkout master

2242

master

feature

Git Basics: Commit, Checkout, Merge

git checkout mastergit merge feature

2342

Git Basics: Commit, Checkout, Merge

Time to get your hands dirty...

HANDS-ON PRACTICE24

42

Git with Others using GitHub

Central Repository

Local Repositories25

42

Git with Others using GitHub

init a central repo

… and clonea local repo

2642

Git with Others using GitHub

master

branch-1

branch-2

origin/master

origin/branch-1

origin/branch-2

master

git clone XXX.git

2742

Git with Others using GitHub

master

branch-1

branch-2

origin/master

origin/branch-1

origin/branch-2

master

branch-2

git checkout origin/branch-2git checkout -d branch-2

2842

Git with Others using GitHub

master

branch-1

branch-2

origin/master

origin/branch-1

origin/branch-2

master branch-2

git add XXXgit commit

2942

Git with Others using GitHub

master

branch-1

branch-2

origin/master

origin/branch-1

master

branch-2

origin/branch-2

git checkout origin/branch-2git merge branch-2

3042

Git with Others using GitHub

master

branch-1

origin/master

origin/branch-1

master

branch-2

origin/branch-2

branch-2

git push

3142

Git with Others using GitHub

master

branch-1

origin/master

origin/branch-1

origin/branch-2

master branch-2

branch-2

3242

Git with Others using GitHub

master

branch-1

origin/master

origin/branch-1

origin/branch-2

master branch-2

branch-2

git fetch

3342

master

feature

Git with Others using GitHub

3442

master

feature

Git with Others using GitHub

3542

master

feature

Git Basics: Commit, Checkout, Merge

… …

3642

master

feature

Git Basics: Commit, Checkout, Merge

… …

git rebase master

3742

Git with Others using GitHub

master

branch-1

origin/master

origin/branch-1

origin/branch-2

master branch-2

branch-2

3842

Git with Others using GitHub

master

branch-1

origin/master

origin/branch-1

origin/branch-2

master branch-2

branch-2

git rebase origin/branch-2

3942

Git with Others using GitHub

master

branch-1

origin/master

origin/branch-1

master

branch-2

branch-2

origin/branch-2

git checkout origin/branch-2git merge branch-2

4042

Git with Others using GitHub

master

branch-1

origin/master

origin/branch-1

master

branch-2

origin/branch-2

branch-2

git push

4142

Time to get your hands dirty again...

HANDS-ON PRACTICE

Git with Others using GitHub

4242

Recommended