Черная и белая магия Git (мастер-класс)

Preview:

Citation preview

Черная и белая магия Git

Application Developers Days 4 13 декабря 2013г

Выговский Леонидvygovskiy.com

НТЦ «Аргус» argustelecom.ru

13 декабря 2013г. Черная и белая магия Git 2 из 29

Git — система для богов?

13 декабря 2013г. Черная и белая магия Git 3 из 29

Фарфор и ...

http://legacy.edenspiekermann.com/projects/hering-web

13 декабря 2013г. Черная и белая магия Git 4 из 29

… и сантехника

http://www.flickr.com/photos/cgt/4592048715

13 декабря 2013г. Черная и белая магия Git 5 из 29

Файловая система

Stage area

Локальный репозиторий

Удаленный репозиторий

13 декабря 2013г. Черная и белая магия Git 6 из 29

Репозиторий Gittree 68782cedc

100644 blob 259f9e .gitignore

040000 tree 9aa10b documents

100755 blob 4152a1 build.sh

040000 tree 07a876 source

100644 blob 9bb0b0

040000 tree a82735

100755 blob 809d5c

13 декабря 2013г. Черная и белая магия Git 7 из 29

демонстрация

13 декабря 2013г. Черная и белая магия Git 8 из 29

История коммитов

commit a4a878

tree 81ebe3

commit be97d6

tree 9769f8 tree 68782ctree 68782c

commit d67882

commit c782c

13 декабря 2013г. Черная и белая магия Git 9 из 29

Ссылки

commit a4a878

commit be97d6

commit d67882

commit c782c

tag 2.0

stable

ver_2.1

master

HEAD

13 декабря 2013г. Черная и белая магия Git 10 из 29

Относительные ссылки

cmt a4a878 cmt be97d6 cmt d67882

cmt c782c

HEAD

cmt e8f6b

cmt d67882

HEAD~1^2

HEAD~1HEAD~2HEAD~3HEAD^1^1

HEAD^^3

13 декабря 2013г. Черная и белая магия Git 11 из 29

демонстрация

13 декабря 2013г. Черная и белая магия Git 12 из 29

Три состояния Git

Текущеедерево

.git/objects/

Следующеедерево

.git/index

РабочееДерево

HEAD Индекс Файлы

Последнийкоммит

Следующийкоммит

Текущие изменения

13 декабря 2013г. Черная и белая магия Git 13 из 29

демонстрация

13 декабря 2013г. Черная и белая магия Git 14 из 29

Откат коммитов

Последнийкоммит

Следующийкоммит

Текущиеизменения

reset --soft

reset [--mixed]

reset --hard

checkout

HEAD ФайлыИндекс

Да Нет Нет

Да Да Нет

Да Да Да

Да (ветка) Да Да

Возможна потеря данных только при reset --hard

13 декабря 2013г. Черная и белая магия Git 15 из 29

демонстрация

13 декабря 2013г. Черная и белая магия Git 16 из 29

когда что-то пошло не так...http://www.genickbruch.com/vb/showthread.php?t=42411

13 декабря 2013г. Черная и белая магия Git 17 из 29

Используй reflog!http://www.ghostvolta.com/e3hulk-hogans-main-events/

13 декабря 2013г. Черная и белая магия Git 18 из 29

демонстрация

13 декабря 2013г. Черная и белая магия Git 19 из 29

черная магияhttp://photographers.com.ua/photo/koldunjya-256487/

13 декабря 2013г. Черная и белая магия Git 20 из 29

Эти операции меняют хэши коммитов!

git rebase -i git filter-branch

Настройка коммитов Наведение порядка

13 декабря 2013г. Черная и белая магия Git 21 из 29

демонстрация

13 декабря 2013г. Черная и белая магия Git 22 из 29

-f — смертельный ингредиент

http://barbatos.ru/215-religiya-indejtsev-majya-chast-4.html

13 декабря 2013г. Черная и белая магия Git 23 из 29

белая магияhttp://barbatos.ru/215-religiya-indejtsev-majya-chast-4.html

13 декабря 2013г. Черная и белая магия Git 24 из 29

слияние (merge)http://turizm.lib.ru/img/n/nowak_anatolij_wladimirowich/action/

13 декабря 2013г. Черная и белая магия Git 25 из 29

Красивая история

A vova

B vova

C igor

D vova

B vova

C igor

D vova

A vova merge

B vova merge

C igor merge

D vova merge

git

pu

ll -r

eba

se

git p

ull [

me

rge

]

13 декабря 2013г. Черная и белая магия Git 26 из 29

заметки на коммитахhttp://commons.wikimedia.org/wiki/File:Sticky_notes_on_the_wall_of_the_Wikimedia_Foundation_office,_2010-10-26.jpg

13 декабря 2013г. Черная и белая магия Git 27 из 29

Заметки на коммитах

commit a4a878 commit d67882commit c782c

Важнаязаметка

Простозаметка

Кто здесь?

13 декабря 2013г. Черная и белая магия Git 28 из 29

аттрибутыhttp://www.stanleyandkatrina.com/2013/09/word-of-week-katrina-von-cat-master-of.html

13 декабря 2013г. Черная и белая магия Git 29 из 29

A

B

D

E

F

0

98

7

6

5

C