Git thinking

Preview:

DESCRIPTION

 

Citation preview

Git - Step by step

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

Goal

We would like to make snapshotsof the university thesis.

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

Thesis

images/

univ_logo.png

main_page.tex

introduction.tex

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

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

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

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

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

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

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

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

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

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

Commits

List

head

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;

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

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

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”

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

head

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

List

Directed Tree

Directed Graph<

<

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

Directed tree

head

Commits

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

???????

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

Branches

Commit * master;Commit * branch1;

git_checkout(branch1) <=> head = branch1

branch1

master

head

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

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

Synchronizingbranch1

master

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

Pickbranch1

master

branch1

git cherry-pick [commit_id]

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

Pickbranch1

master

branch1

git cherry-pick [commit_id]

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

Rebase

building new base

rebase master to branch1

branch1

master

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

branch1

master

git rebase branch1

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

branch1

master

git rebase branch1

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

!= branch1

master

git rebase branch1

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

branch1

git rebase branch1

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

branch1

git rebase branch1

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

branch1

git rebase branch1

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

branch1

git rebase branch1

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

branch1

master

git rebase branch1

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

Merge

branch1

master

git merge branch1

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

Merge

branch1

master

git merge branch1

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

Backup?

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

Backup?

PenDrive

SSH

D:\NFS

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

Backup?

PenDrive

SSH

D:\NFS

Amazon Storage

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

Sharing?

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

Sharing?

FTP

Samba

HTTP

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

List

Directed Tree

Directed Graph<

<

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

branch1

master

Directed Graph

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

branch1

master

Directed Graph

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

Directed Graph

bm

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

Directed Graph

bm

bm

bm

bm

SSHHTTP

Github

Local

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

Directed Graph

bm

bm

bm

bm

SSHHTTP

Github

Local

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

Git remote

bm

bm

bm

bm

SSHhttp

github

Local

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

Git remote

bm

bm

github

Local

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

www.github.com

bm

github

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

Clone

git clone git@github.com:Nucc/check.it.git

bm

githubbm

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

Clone

git clone git@github.com:Nucc/check.it.git

bm

github

Local

originbm

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

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

Operations

bm

local

bm

push

pull

github

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

Operations

bm

local

bm

push

pull

github

git pull origin/master

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

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

Here and there...

bm

local

bm

backup

restore

github

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

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

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

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

bm

bm

bm bm

bm

bm

bm

bm

bm

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

bm

bm

bm bm

bm

bm

bm

bm

bm

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

?twitter.com/nucc

Recommended