SlideShare una empresa de Scribd logo
1 de 37
Git Intro
Кампус 2013, Ижевск

Андрей Лапин
Диадок, Ижевск
Системы контроля версий

•

Распределенные

•
•
•

•

Mercurial
Bazaar

Централизованные

•
•
•

•

Git

SVN
TFS
CVS

Локальные системы управления

•

RCS
Базовые понятия
• Репозиторий
• Commit
• Hash
• Ветка
Клиенты: GitExtensions, TortoiseGit
Работа с удаленным репозиторием
Базовые операции
• git init
• git add <filename>
• git commit -a –m <message>
• git commit -a --amend –m <message>
• git status
• git log
git reflog
File moving by Git
Файл .gitignore
Пример файла .gitignore:

settings
#exceptions
!Settings/UnchangeableFiles/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Thumbs.db
*/bin/*.exe
*.bak
*.log
Клонирование репозитория
• git clone git@github.com:trurl123/test.git
• git clone git@github.com:trurl123/test.git myfolder
• SSH and HTTP
Операции с удаленным репозиторием
• git fetch --all
• git push [сервер] [ветка]
• git pull
• git remote add <alias> <url>
Хранение данных в Git
• Папка .git
• Снапшоты
• Сжатие
• Удаленные репозитории
Ветки
Ссылки на ревизии
• Revisions
•
•
•
•
•
•
•

<sha1>, e.g. dae86e1950b1277e545cee180551750029cfe735, dae86e
<refname>
HEAD, ORIG_HEAD, MERGE_HEAD
<refname>@{<date>}, e.g. master@{yesterday}, HEAD@{5 minutes ago}
<refname>@{<n>}
<rev>^, e.g. HEAD^, HEAD^1, HEAD^2
<rev>~<n>, e.g. master~3

• Ranges
•
•
•
•

r
^r1
r1^@
r1^!

• см. также «git help revisions»
Пример из крышек и тильд
G

H

I

 /
D

J
 /

E

F

|

/ 



 | /

|

|/
B

|
C



/

 /
A
A =
B = A^

= A^0
= A^1

C = A^2

= A^2

D = A^^
E = B^2

= A^1^1
= A^^2

F = B^3

Ranges

= A^^3

= A~1
= A~2

G = A^^^ = A^1^1^1 = A~3
H = D^2 = B^^2
= A^^^2
I = F^

= B^3^

= A^^3^

J = F^2

= B^3^2

= A^^3^2

= A~2^2

D
D F
^G D
^D B
B...C
^D B C
C^@
F^! D

G
G
H
E
G
E
I
G

H
H
D
I
H
I
J
H

D
I J D F
J
D
J
F
D

F B
E B C
F B C
F
Команды по работе с ветками
• git merge brname
• git rebase master
Merge
Подумайте, что вы вливаете в свою
ветку
• branch vs origin/branch
Rebase
Проблемы rebase
• Не переписывайте ветки на сервере!
• Не делать rebase после merge
Pull, merge and rebase
• pull = fetch + merge
• pull --rebase == fetch + rebase
Временные ветки
• git stash
• git stash apply
Жизненный цикл ветки (real)
git checkout -b myBranch master
... commits
git push
git fetch
git merge origin/master
… fix after merge
git checkout -B master origin/master
git merge myBranch
git push
Текущий коммит в ветке
• git commit –m <message>
• git pull --rebase
• git push
ПРАКТИКА
Генерация SSH ключа
$ ssh-keygen -t rsa -C "email@example.com"
...
# Enter file in which to save the key
(/c/Users/you/.ssh/id_rsa): [Press enter]

$ clip < ~/.ssh/id_rsa.pub

Account Settings -> SSH Keys -> Add SSH key
$ ssh -T git@github.com
>yes
• См. https://github.com/kontur-edu/kampus-izh-201311/tree/master/01-git
Конфигурирование: настройки
пользователя
Имя пользователя:
$ git config --global user.name "MyName"
E-mail пользователя:
$ git config --global user.email m@il.ru
Задание
Впиши себя!

https://github.com/trurl123/test
Примеры проблем и их
решение
Откат изменений:
отмена одного старого коммита

git revert <hash>

git log
↓
commit dcb4...
Revert "+someone"
This reverts commit 6460
commit 6460...
+someone
Откат изменений:
отмена нескольких последних коммитов
git reset [--hard|--mixed] <commit>
e.g.:
git reset --hard HEAD~3
Почистить папку от результатов
компиляции
• git clean
Удалить ветку на сервере
• git push origin :brName
Удалить ветки у себя, когда на сервере
кто-то удалил ветки
• git remote prune origin
Стянуть коммит из другой ветки к себе
без мерджей
• git cherry-pick
Что бы почитать:
$ git help
$ git help <command>
Pro Git: http://git-scm.com/book
Git magic: http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/ru/
http://pcottle.github.io/learnGitBranching/

Más contenido relacionado

La actualidad más candente

Triggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на KubernetesTriggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на KubernetesMad Devs
 
Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Egor Stremousov
 
Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.7bits
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...it-people
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Fwdays
 
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéInterSystems CEE
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergrationInterSystems
 
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Ontico
 
Scino: DVCS на примере Git
Scino: DVCS на примере GitScino: DVCS на примере Git
Scino: DVCS на примере GitSCINO
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupBadoo Development
 
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Андрей Кухаренко
 
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanesPavel Emelyanov
 
Git для продолжающих
Git для продолжающихGit для продолжающих
Git для продолжающихIvan Evtukhovich
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Badoo Development
 
«Composer vs. копипаст модулей битрикса из проекта в проект»
«Composer vs. копипаст модулей битрикса из проекта в проект» «Composer vs. копипаст модулей битрикса из проекта в проект»
«Composer vs. копипаст модулей битрикса из проекта в проект» Гузель Рахимова
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»WrikeTechClub
 
Стажировка-2013, разработчики, занятие 10. Git
Стажировка-2013, разработчики, занятие 10. GitСтажировка-2013, разработчики, занятие 10. Git
Стажировка-2013, разработчики, занятие 10. Git7bits
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayAndrey Rebrov
 
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25Alex Chistyakov
 

La actualidad más candente (20)

Triggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на KubernetesTriggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на Kubernetes
 
Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"
 
Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
 
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на Caché
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergration
 
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
 
Scino: DVCS на примере Git
Scino: DVCS на примере GitScino: DVCS на примере Git
Scino: DVCS на примере Git
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
 
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
 
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanes
 
Git для продолжающих
Git для продолжающихGit для продолжающих
Git для продолжающих
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
 
«Composer vs. копипаст модулей битрикса из проекта в проект»
«Composer vs. копипаст модулей битрикса из проекта в проект» «Composer vs. копипаст модулей битрикса из проекта в проект»
«Composer vs. копипаст модулей битрикса из проекта в проект»
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Стажировка-2013, разработчики, занятие 10. Git
Стажировка-2013, разработчики, занятие 10. GitСтажировка-2013, разработчики, занятие 10. Git
Стажировка-2013, разработчики, занятие 10. Git
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25
 

Similar a Git intro

Распределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере gitРаспределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере gitIvan Evtukhovich
 
GIT Slides (25.03.2015)
GIT Slides (25.03.2015)GIT Slides (25.03.2015)
GIT Slides (25.03.2015)Ilya V
 
Git для начинающих
Git для начинающихGit для начинающих
Git для начинающихVadim Drobinin
 
Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Dmytro Olaresko
 
Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.DrupalForumZP2012
 
Git - Вадим Валуев
Git - Вадим ВалуевGit - Вадим Валуев
Git - Вадим ВалуевDrupalCamp MSK
 
базовые принципы работы с Git
базовые принципы работы с Gitбазовые принципы работы с Git
базовые принципы работы с GitDressTester
 
Git (presentation)
Git (presentation)Git (presentation)
Git (presentation)Anton Ivanov
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаКонстантин Никифоров
 
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...Ontico
 
Переход на Git из Subversion
Переход на Git из SubversionПереход на Git из Subversion
Переход на Git из SubversionMikhail Vasilyev
 
Антон Шумихин - Redmin&Git
Антон Шумихин - Redmin&GitАнтон Шумихин - Redmin&Git
Антон Шумихин - Redmin&GitGAiN@ESD
 
Git, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомGit, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомAlex Musayev
 
Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git phpdevby
 

Similar a Git intro (20)

Распределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере gitРаспределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере git
 
Chebit.Git
Chebit.GitChebit.Git
Chebit.Git
 
Приручаем Git
Приручаем GitПриручаем Git
Приручаем Git
 
GIT Slides (25.03.2015)
GIT Slides (25.03.2015)GIT Slides (25.03.2015)
GIT Slides (25.03.2015)
 
Git для начинающих
Git для начинающихGit для начинающих
Git для начинающих
 
Git presentation
Git presentationGit presentation
Git presentation
 
Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.
 
Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.
 
Git - Вадим Валуев
Git - Вадим ВалуевGit - Вадим Валуев
Git - Вадим Валуев
 
базовые принципы работы с Git
базовые принципы работы с Gitбазовые принципы работы с Git
базовые принципы работы с Git
 
Git for you
Git for youGit for you
Git for you
 
Git (presentation)
Git (presentation)Git (presentation)
Git (presentation)
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторинга
 
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
 
Git basis
Git basisGit basis
Git basis
 
GitFlow_MOEX
GitFlow_MOEXGitFlow_MOEX
GitFlow_MOEX
 
Переход на Git из Subversion
Переход на Git из SubversionПереход на Git из Subversion
Переход на Git из Subversion
 
Антон Шумихин - Redmin&Git
Антон Шумихин - Redmin&GitАнтон Шумихин - Redmin&Git
Антон Шумихин - Redmin&Git
 
Git, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомGit, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентом
 
Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git
 

Más de Andrey Lapin

виртуальный музей
виртуальный музейвиртуальный музей
виртуальный музейAndrey Lapin
 
создание условий, способствующих эффективному развитию информационно образова...
создание условий, способствующих эффективному развитию информационно образова...создание условий, способствующих эффективному развитию информационно образова...
создание условий, способствующих эффективному развитию информационно образова...Andrey Lapin
 
информационно образовательная среда в начальной школе
информационно   образовательная среда в начальной школеинформационно   образовательная среда в начальной школе
информационно образовательная среда в начальной школеAndrey Lapin
 
введение фгос в гимназии. семинар 29.03.12
введение фгос в гимназии. семинар 29.03.12введение фгос в гимназии. семинар 29.03.12
введение фгос в гимназии. семинар 29.03.12Andrey Lapin
 
экстремизм в молодежной среде
экстремизм в молодежной средеэкстремизм в молодежной среде
экстремизм в молодежной средеAndrey Lapin
 
Классный час безопасный интернет
Классный час безопасный интернетКлассный час безопасный интернет
Классный час безопасный интернетAndrey Lapin
 
Создание информационно образовательной среды в начальной школе
Создание информационно  образовательной среды в начальной школеСоздание информационно  образовательной среды в начальной школе
Создание информационно образовательной среды в начальной школеAndrey Lapin
 

Más de Andrey Lapin (7)

виртуальный музей
виртуальный музейвиртуальный музей
виртуальный музей
 
создание условий, способствующих эффективному развитию информационно образова...
создание условий, способствующих эффективному развитию информационно образова...создание условий, способствующих эффективному развитию информационно образова...
создание условий, способствующих эффективному развитию информационно образова...
 
информационно образовательная среда в начальной школе
информационно   образовательная среда в начальной школеинформационно   образовательная среда в начальной школе
информационно образовательная среда в начальной школе
 
введение фгос в гимназии. семинар 29.03.12
введение фгос в гимназии. семинар 29.03.12введение фгос в гимназии. семинар 29.03.12
введение фгос в гимназии. семинар 29.03.12
 
экстремизм в молодежной среде
экстремизм в молодежной средеэкстремизм в молодежной среде
экстремизм в молодежной среде
 
Классный час безопасный интернет
Классный час безопасный интернетКлассный час безопасный интернет
Классный час безопасный интернет
 
Создание информационно образовательной среды в начальной школе
Создание информационно  образовательной среды в начальной школеСоздание информационно  образовательной среды в начальной школе
Создание информационно образовательной среды в начальной школе
 

Git intro