64
Git - Step by step

Git thinking

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Git thinking

Git - Step by step

Page 2: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Goal

We would like to make snapshotsof the university thesis.

Page 3: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Thesis

images/

univ_logo.png

main_page.tex

introduction.tex

Page 4: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Create backup

images

univ_logo.png

main_page.tex

introduction.tex

copy

backup

2011-09-11

2011-10-01_images_ready

2011-11-22_release

Page 5: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Later...

images

univ_logo.png

main_page.tex

introduction.tex

images

univ_logo.png

cover_image.png

main_page.tex

introduction.tex

first_chapter.tex

2011-10-01_images_ready 2011-09-11

time

Page 6: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

++size

backup/

2011-09-11 [300 bytes]

2011-10-01_images_ready [228 kbytes]

2011-11-22_release [500 kbytes]

time

Sum: 728 kbytes

Page 7: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Changes by the time...

images

univ_logo.png

main_page.tex

introduction.tex

images

univ_logo.png

cover_image.png

main_page.tex

introduction.tex

first_chapter.tex

2011-10-01_images_ready 2011-09-11

Page 8: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Optimizing

images

univ_logo.png

main_page.tex

introduction.tex

2011-10-01_kepek_kesz 2011-09-11

images

univ_logo.png

cover_image.png

main_page.tex

introduction.tex

first_chapter.tex

Page 9: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Transparency

images

univ_logo.png

main_page.tex

introduction.tex

images

cover_image.png

main_page.tex

first_chapter.tex

2011-10-01_kepek_kesz

Page 10: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Transparency

images

univ_logo.png

main_page.tex

introduction.tex

images

cover_image.png

main_page.tex

first_chapter.tex

2011-10-01_kepek_kesz

Page 11: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Stage

images

univ_logo.png

main_page.tex

introduction.tex

2011-10-01_images_ready 2011-09-11

images

univ_logo.png

cover_image.png

main_page.txt

introduction.tex

first_chapter.tex

Page 12: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Commit

images

univ_logo.png

main_page.tex

introduction.tex

2011-10-01_images... 2011-09-11

images

univ_logo.png

cover_image.png

main_page.tex

introduction.tex

first_chapter.tex

TitleDateStage

Page 13: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Commits

List

head

Page 14: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Structure

head

Stage { ... // changed files }

Commit { Date date; String title; Stage * stage; Commit * parent; }

Commit * head;

Page 15: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Operations Stage { ... // changed files }

Commit { Date date; String title; Stage * stage; Commit * parent; }

Commit * head;head = 0; // beginning

git_commit(Stage * stage, String title){ Commit * commit = new Commit;

commit->date = date(); commit->title = title; commit->stage = stage; commit.parent = head;

head = commit;}

head

Page 16: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Operations Stage { ... // changed files }

Commit { Date date; String title; Stage * stage; Commit * parent; }

Commit * head;head = 0; // beginning

git_commit(Stage * stage, String title){ Commit * commit = new Commit;

commit->date = date(); commit->title = title; commit->stage = stage; commit.parent = head;

head = commit;}

head

Page 17: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Process

stage = new Stage;stage->add("/README.txt");

git_commit(stage, "init repo");

stage = new Stage;stage->add("/README.txt");stage->add("/main.cpp");

git_commit(stage, "Added main.cpp");

git init // head = 0

git add README.txt

git commit -m “init repo”

git add “README.txt”

git add “main.cpp”

git commit -m “Added main.cpp”

Page 18: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

head

Page 19: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

List

Directed Tree

Directed Graph<

<

Page 20: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Directed tree

head

Commits

Page 21: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Checkout

// means change the head

git_checkout(Commit * commit){ head = commit;}

git_checkout(0x45F34FE2)

head

???????

Page 22: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Branches

Commit * master;Commit * branch1;

git_checkout(branch1) <=> head = branch1

branch1

master

head

Page 23: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Tags

Commit * const tag1;Commit * const tag2;

git_checkout(tag1) <=> head = tag1

tag1 tag1

Page 24: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Synchronizingbranch1

master

Page 25: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Pickbranch1

master

branch1

git cherry-pick [commit_id]

Page 26: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Pickbranch1

master

branch1

git cherry-pick [commit_id]

Page 27: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Rebase

building new base

rebase master to branch1

branch1

master

Page 28: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

branch1

master

git rebase branch1

Page 29: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

branch1

master

git rebase branch1

Page 30: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

!= branch1

master

git rebase branch1

Page 31: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

branch1

git rebase branch1

Page 32: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

branch1

git rebase branch1

Page 33: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

branch1

git rebase branch1

Page 34: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

branch1

git rebase branch1

Page 35: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

branch1

master

git rebase branch1

Page 36: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Merge

branch1

master

git merge branch1

Page 37: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Merge

branch1

master

git merge branch1

Page 38: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Backup?

Page 39: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Backup?

PenDrive

SSH

D:\NFS

Page 40: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Backup?

PenDrive

SSH

D:\NFS

Amazon Storage

Page 41: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Sharing?

Page 42: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Sharing?

FTP

Samba

HTTP

Page 43: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

List

Directed Tree

Directed Graph<

<

Page 44: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

branch1

master

Directed Graph

Page 45: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

branch1

master

Directed Graph

Page 46: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Directed Graph

bm

Page 47: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Directed Graph

bm

bm

bm

bm

SSHHTTP

Github

Local

Page 48: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Directed Graph

bm

bm

bm

bm

SSHHTTP

Github

Local

Page 49: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Git remote

bm

bm

bm

bm

SSHhttp

github

Local

Page 50: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Git remote

bm

bm

github

Local

Page 51: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

www.github.com

bm

github

Page 52: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Clone

git clone [email protected]:Nucc/check.it.git

bm

githubbm

Page 53: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Clone

git clone [email protected]:Nucc/check.it.git

bm

github

Local

originbm

Page 54: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

More remotes

bm

local

bm

github

bm

http

git remote -a http://nucc.balabit.hu/diploma weblap

origin

webpage

Page 55: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Operations

bm

local

bm

push

pull

github

Page 56: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Operations

bm

local

bm

push

pull

github

git pull origin/master

Page 57: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Operations

bm

local

bm

push

pull

github

git pull origin/master

git push origin master

Page 58: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Here and there...

bm

local

bm

backup

restore

github

Page 59: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Here and there...

bm

local

bm

backup

restore

github

git reset --hard origin/master

Page 60: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Here and there...

bm

local

bm

backup

restore

github

git reset --hard origin/master

git push -f origin master

Page 61: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

Page 62: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

bm

bm

bm bm

bm

bm

bm

bm

bm

Page 63: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

bm

bm

bm bm

bm

bm

bm

bm

bm

Page 64: Git thinking

Balabit Open Academy, Veszprém, Nov 30, 2011 twitter.com/nucc

?twitter.com/nucc