SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Черная и белая магия Git
Выговский Леонид
vygovskiy.com

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

Application Developers Days 4
13 декабря 2013г
Git — система для богов?
13 декабря 2013г.

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

2 из 29
Фарфор и ...
13 декабря 2013г.

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

3 из 29
http://legacy.edenspiekermann.com/projects/hering-web
… и сантехника
13 декабря 2013г.

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

4 из 29
http://www.flickr.com/photos/cgt/4592048715
Файловая система

Stage area

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

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

13 декабря 2013г.

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

5 из 29
Репозиторий Git
tree 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

6 из 29
демонстрация
13 декабря 2013г.

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

7 из 29
История коммитов
commit be97d6
commit a4a878

commit d67882
commit c782c

tree 68782c

13 декабря 2013г.

tree 81ebe3

tree 9769f8

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

tree 68782c

8 из 29
Ссылки

commit be97d6
tag 2.0

master
HEAD

commit a4a878

commit d67882
commit c782c
stable
ver_2.1

13 декабря 2013г.

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

9 из 29
Относительные ссылки
HEAD~3
cmt a4a878

HEAD^1^1
HEAD~2
cmt be97d6

HEAD~1
cmt d67882

HEAD
cmt d67882

HEAD~1^2
cmt c782c
HEAD^^3
cmt e8f6b

13 декабря 2013г.

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

10 из 29
демонстрация
13 декабря 2013г.

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

11 из 29
Три состояния Git
HEAD

Индекс

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

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

.git/objects/

.git/index

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

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

13 декабря 2013г.

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

Файлы

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

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

12 из 29
демонстрация
13 декабря 2013г.

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

13 из 29
Откат коммитов
HEAD
Индекс
Последний Следующий
коммит
коммит

Файлы
Текущие
изменения

reset --soft

Да

Нет

Нет

reset [--mixed]

Да

Да

Нет

reset --hard

Да

Да

Да

Да

Да

checkout

Да (ветка)

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

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

14 из 29
демонстрация
13 декабря 2013г.

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

15 из 29
когда что-то пошло не так...
13 декабря 2013г.

Черная и белая магия Git
http://www.genickbruch.com/vb/showthread.php?t=42411

16 из 29
Используй reflog!
13 декабря 2013г.

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

17 из 29
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/
Эти операции меняют хэши коммитов!

git rebase -i

git filter-branch

Настройка коммитов

Наведение порядка

13 декабря 2013г.

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

20 из 29
демонстрация
13 декабря 2013г.

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

21 из 29
-f — смертельный
ингредиент
13 декабря 2013г.

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

22 из 29
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
слияние (merge)
13 декабря 2013г.

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

24 из 29
http://turizm.lib.ru/img/n/nowak_anatolij_wladimirowich/action/
Красивая история
D vova

git pull [merge]

B vova

git pull -rebase

C igor

D vova merge
D vova
C igor merge
C igor
B vova merge
B vova

A vova
13 декабря 2013г.

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

25 из 29
заметки на коммитах
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
Заметки на коммитах
commit a4a878

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

13 декабря 2013г.

commit c782c

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

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

commit d67882

Кто
здесь?

27 из 29
аттрибуты
13 декабря 2013г.

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

28 из 29

http://www.stanleyandkatrina.com/2013/09/word-of-week-katrina-von-cat-master-of.html
7

8

9

6

0

5

F
E
D
C
B
A

13 декабря 2013г.

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

29 из 29

Weitere ähnliche Inhalte

Mehr von SQALab

Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 
Истинная сила тестировщика - информация
Истинная сила тестировщика - информацияИстинная сила тестировщика - информация
Истинная сила тестировщика - информацияSQALab
 
Автоматизация тестирования встроенного ПО
Автоматизация тестирования встроенного ПОАвтоматизация тестирования встроенного ПО
Автоматизация тестирования встроенного ПОSQALab
 
Правильный подход к составлению профиля нагрузочного тестирования
Правильный подход к составлению профиля нагрузочного тестированияПравильный подход к составлению профиля нагрузочного тестирования
Правильный подход к составлению профиля нагрузочного тестированияSQALab
 
Sustainable Test Automation: Collaborate within Team
Sustainable Test Automation: Collaborate within TeamSustainable Test Automation: Collaborate within Team
Sustainable Test Automation: Collaborate within TeamSQALab
 

Mehr von SQALab (20)

Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 
Истинная сила тестировщика - информация
Истинная сила тестировщика - информацияИстинная сила тестировщика - информация
Истинная сила тестировщика - информация
 
Автоматизация тестирования встроенного ПО
Автоматизация тестирования встроенного ПОАвтоматизация тестирования встроенного ПО
Автоматизация тестирования встроенного ПО
 
Правильный подход к составлению профиля нагрузочного тестирования
Правильный подход к составлению профиля нагрузочного тестированияПравильный подход к составлению профиля нагрузочного тестирования
Правильный подход к составлению профиля нагрузочного тестирования
 
Sustainable Test Automation: Collaborate within Team
Sustainable Test Automation: Collaborate within TeamSustainable Test Automation: Collaborate within Team
Sustainable Test Automation: Collaborate within Team
 

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

Hinweis der Redaktion

  1. Работа с объектами
  2. Важный слайд! Каждый коммит — это полное представление рабочей копии в каждый момент времени Историю делают последовательности коммитов, которые привязаны к рабочим копиям
  3. Важный слайд! Надо понимать, что ссылка — это не более чем именнованный коммит. Ветки и метки — это просто ссылки на коммиты. Другими словами — ссылка — это указатель на зафиксированный набор файлов в сохраненном формате
  4. Важный слайд! Надо понимать, что ссылка — это не более чем именнованный коммит. Ветки и метки — это просто ссылки на коммиты. Другими словами — ссылка — это указатель на зафиксированный набор файлов в сохраненном формате
  5. Работа со ссылками
  6. ==== Три состояния
  7. ==== Откаты истории
  8. ==== Откаты истории
  9. ==== Откаты истории
  10. Важный слайд! Надо понимать, что ссылка — это не более чем именнованный коммит. Ветки и метки — это просто ссылки на коммиты. Другими словами — ссылка — это указатель на зафиксированный набор файлов в сохраненном формате
  11. Важный слайд! Надо понимать, что ссылка — это не более чем именнованный коммит. Ветки и метки — это просто ссылки на коммиты. Другими словами — ссылка — это указатель на зафиксированный набор файлов в сохраненном формате