git для начинающих
TRANSCRIPT
Угадайте проект• Тысячи разработчиков
• Сотрудники по всему миру
• Установлен на миллионах компьютеров
• Лежит в основе 90% суперкомпьютеров в мире
• Работает на телефонах некоторых из вас
• 11 лет создавался без системы контроля версий
• У них классный логотип ^_^
4
РаньшеГлавный чувак Вы
main.c library.c library.h
version-1.0.zip
v1/main.c v1/library.c v1/library.h
cp -Rf v1 patch
patch/main.c patch/library.c patch/library.h
6
РаньшеГлавный чувак Вы
main.c library.c library.h
version-1.0.zip
v1/main.c v1/library.c v1/library.h
cp -Rf v1 patch
patch/main.c patch/library.c patch/library.h
7
РаньшеГлавный чувак Вы
main.c library.c library.h
version-1.0.zip
v1/main.c v1/library.c v1/library.h
cp -Rf v1 patch
patch/main.c patch/library.c* patch/library.h
diff -u v1 patch
8
РаньшеГлавный чувак Вы
main.c library.c library.h
version-1.0.zip
v1/main.c v1/library.c v1/library.h
cp -Rf v1 patch
patch/main.c patch/library.c* patch/library.h
diff -u v1 patchE-mail
9
РаньшеГлавный чувак Вы
main.c library.c library.h
version-1.0.zip
v1/main.c v1/library.c v1/library.h
cp -Rf v1 patch
patch/main.c patch/library.c* patch/library.h
diff -u v1 patchE-mail
version-1.1.zip
10
Главная идея• git add
• git commit
• Что, если какие-то файлы не добавлены в индекс?
• — Они не попадут в коммит.
• Добавлять и коммитить файлы можно независимо.
19
Настроить систему
• Скачать (git-scm.com/downloads)
• $ git config --global user.name “Vad Drobinin”
• $ git config --global user.email “[email protected]”
20
Подытожим• Редактировать файлы: vim / emacs / etc
• Индексировать изменения: git add (file)
• Просматривать изменения: git status / git diff
• Добавлять в хранилище: git commit
• Получать изменения: git pull
• Отправлять в удаленный репозиторий: git push23
Этикет
• Commit often
• Не делайте коммит того, что еще не сделано до конца
• Git — не система для бэкапов
• Тестируйте перед отправкой
24
git bisect
45
$ git bisect start $ git bisect bad $ git bisect good v1.0 Bisecting: 6 revisions left to test after this [ecb6e1bc347ccecc5f9350d878ce677feb13d3b2] error handling on repo