Основы Git

1.

Основы Git

2.

Ситуация: Петя, Вася и Коля решили написать новый проект. Быстренько на коленке ребята вместе за чашкой чая
накидали каркас веб-приложения для интернет-магазина. Ребята решили, что каждый из них напишет по одной
компоненте своей системы:

3.

Для решения задачи сборки проекта есть следующие решения:
1 способ: взять и скинуть всё кому-нибудь одному и пусть он вставляет файлы в папку с проектом.
2 способ: завести папку в облаке и пусть каждый сам заходит и вставляет свои файлы.
Проект запущен и команда продолжает его модифицировать. С течением времени происходят
следующие проблем

4.

Для решения этих задач можно использовать Git.
Git — система управления версиями с распределенной архитектурой. В отличие от некогда популярных
систем вроде CVS и Subversion (SVN), где полная история версий проекта доступна лишь в одном месте, в Git
каждая рабочая копия кода сама по себе является репозиторием. Это позволяет всем разработчикам
хранить историю изменений в полном объеме.
Разработка в Git ориентирована на обеспечение высокой производительности, безопасности и гибкости
распределенной системы.
Некоторые системы управления версиями руководствуются именами файлов при работе с деревом файлов и
ведении истории версий. Вместо обработки названий система Git анализирует содержимое. Это важно, поскольку
файлы исходного кода часто переименовывают, разделяют и меняют местами. Объектные файлы репозитория Git
формируются с помощью дельта-кодирования (фиксации отличий содержимого) и компрессии. Кроме того, такие
файлы в чистом виде хранят объекты с содержимым каталога и метаданными версий.
Использование Git гарантирует подлинность истории изменений исходного кода.
Cистема Git рассчитана прежде всего на создание веток и использование тегов. Поэтому процедуры с участием
веток и тегов (например, объединение и возврат к предыдущей версии) сохраняются в истории изменений.

5.

Определения, которые необходимо знать:
• коммит (commit) - это контрольная точка, которую мы создаём
• хэш коммита (hash commit) - уникальный идентификатор контрольной точки(коммита)
• операция push - отправка новых контрольных точек в удалённый репозиторий
• операция pull - получение новых контрольных из удалённого репозитория

6.

Связать локальный репозиторий с удалённым можно двумя способами:
1 способ. когда проект уже существует, можно подвязать его с помощьюнекоторых команд терминала
Подготовка к работе с Git.
Установка имени и электронной почты
Создание проекта
Начните работу в пустом рабочем каталоге с создания пустого каталога с именем
«hello», затем войдите в него и создайте там файл с именем hello.html
Создание репозитория
Чтобы создать git репозиторий из этого каталога, выполните команду git init.
Добавление страницы в репозиторий
Проверка состояния репозитория

7.

Далее репозитории можно добавить на GitHub с помощью утилиты GitHubCLI.
2 способ. создаём пустой репозиторий в GitHub а потом просто клонируем его себе на локальную машину

8.

Задание
1. Создать локальный репозиторий и связать его с удалённым наGitHub.
2. Создать новый репозиторий на GitHub и клонировать его налокальную машину.

9.

Постановка проблемы: несколько человек ведут работу над разными фичами в пределах одного проекта. Как
сделать так, чтобы изменения в проект можно быловлить быстро и безболезненно?

10.

Наличие веток решают важные задачи:
• упорядочивают внесение изменений в основную ветку и делают их безопасными
• создают возможность для проведения код-ревью
Для просмотра веток используется команда
Для копирования данных из облачного репозитория в локальный.
Команда для создания новой ветки. –b – это удобный способ сообщить системе Git, чтобы она выполнила
команду git branch <новая-ветка>. Т.е. Автоматически создается ветка и мы переходим в нее, чтобы
закоммитить изменения

11.

Чтобы создать коммит нужно ввести следующие команды
Чтобы того, чтобы влить новую ветку в наш проект, переходим в нее и вводим команду git merge <имя ветки>
Иногда, прежде чем вливать свои изменения в главную ветку делают код-ревью. Для это можно сделать pull
request и поделиться своими изменениями с другими разработчиками. Внутри запроса другие разработчики
могут просмотреть код и оставить комментарии. И уже после проверки кода делают вливание ветки.

12.

13.

14.

Задание
1.
2.
3.
4.
5.
6.
7.
8.
сделать несколько коммитов в основную ветку (main/master)
создать ещё одну побочную ветку с произвольным именем
сделать несколько коммитов в побочную ветку
попереключаться между ветками и убедиться в том, чтокодовые базы в них имеют отличия
осуществить слияние побочной ветки с основной с помощью команды merge
повторить все предыдущие пункты, кроме 5
поставить pull-request и попробовать написать в нёмпроизвольный комментарий
осуществить слияние веток посредством pull-request

15.

Слияние с помощью rebase
git rebase <ветка, в которую вливаемся> <ветка, которую сливают>
После git merge <ветка, которую сливали> из ветки <в которую сливали>
Чтобы удалить лишние ветки производим удаление из локального репозитория и облачного

16.

Задание
1. создать побочную ветку с произвольным именем и сделать несколько коммитов в неё
2. осуществить слияние побочной ветки с основной с помощью команды rebase

17.

18.

Задание
1. Создать командный проект Django-приложение Библиотека.
2. В данном приложении зарегистрированным пользователям будет предоставляться
возможность добавления книг в каталог, редактирование их данных и удаление.
3. На главной странице можно увидеть список книг, которые можно взять в пользование.
4. Любой может отставить заявку на пользование книгой (необходима форма заявки).
5. Добавить возможность отбора книг по категориям (например: только фантастика. Это
фильтр по Категориям)
6. В базе данных есть таблицы Книга (название, автор, дата издания, категория), Автор (имя),
Категория (название категории).
7. Обязательно использование css и js (анимации, переходы при нажатии и т.д.)
English     Русский Правила