Понимая git /git/. git изнутри наружу

Post on 16-Apr-2017

263 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Понимая Git /ɡɪt/Git изнутри наружу

Vadim Kormyzhenko @Comodo

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Использовать ≠ знать

Что общего между современным водителем и программистом

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Контроль версий на архивах

плюсы● просто● быстро● кроссплатформенно

минусы● наименование● совместная работа● размер

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Словарь

Git “нормальный язык”

commit архив

branch последовательность архивов

working directory каталог с исходниками

repository каталог с исходниками и архивами

remote repository бекап и/или каталог на сервере

git commands копирование файлов, архивирование...

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Программисты и хипстеры

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

История git и ядра Linux

● Вначале были архивы и письма

● Потом был BitKeeper

● Линус решил сделать свое

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Git для математиков

Взято у https://prateekvjoshi.com/2014/08/30/git-fetch-vs-git-pull/

git намного легче понять, когда вы знакомы с простым пониманием, что бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Git это те же архивы, но с графами

● Git = архивы + DAG коммитов + утилиты

● DAG = ориентированный ациклический

граф

● Утилиты = команды git = инструмент для

манипуляции графом

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Внутренности коммита

Коммит это инкрементальный архив

Коммит состоит из:

● измененных файлов-архивов

● дерева

● собственно коммита

взято у http://zzet.org/git/learning/undev/coursify/2014/02/09/lection-2-git-course-undev.html

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

ВеткиВетка это логическая последовательность коммитов

Имя ветки это просто псевдоним хеша коммита

Ветка стоит дешево – файл на 41 байт, по факту 2-3 кб

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Структура репозитория

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Просто копирование

Add, reset, checkout, commit это копирование

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Push это также копирование

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Cherry-pick

Взято у http://www.xda-developers.com/

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Rebase - это несколько cherry-pick

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

NOLI NOCERE

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Если все пошло не так

Всегда полезно:

● архивируем

● git status

● git reflog

Не делать!

● git push

● git gc

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Вопросы

AgendaTopic 1

Topic 2

Subtopic 1

Topic 3

Thank you

Vadym@twitter+GooglePlus

top related