GIT
Что такое GIT и зачем он нужен?
ПОЧЕМУ GIT ПОПУЛЯРЕН?
ОСНОВНЫЕ ПОНЯТИЯ GIT
Базовая Настройка GIT
Важно помнить порядок!
Работа с Ветками (Branches)
Создание и переключение веток
Взаимодействие с удаленными репозиториями
Получение изменений (pull)
Отмена изменений (Undo) в Git
Разница между git pull и git fetch
Как обновить локальную ветку?
GitHub vs GitLab vs Bitbucket

GIT

1. GIT

2. Что такое GIT и зачем он нужен?

Система контроля версий (VCS)
Git — это распределенная система контроля версий (DVCS ),
разработанная Линусом Торвальдсом. Она позволяет
отслеживать изменения в файлах, возвращаться к предыдущим

3. ПОЧЕМУ GIT ПОПУЛЯРЕН?

• Распределенность: Каждая копия репозитория содержит
полную историю изменений, что повышает надежность.
• Скорость: Git очень быстр в большинстве операций
• Надежность: Изменения сохраняются локально, что снижает
риск потери данных.
• Гибкость: Мощные возможности ветвления и слияния.

4. ОСНОВНЫЕ ПОНЯТИЯ GIT

ОСНОВНЫЕ ПОНЯ ТИЯ GIT
• Репозиторий: Место хранения проекта и его истории
изменений.
• Коммит: Снимок состояния файлов проекта в определенный
момент времени.
• Ветка (Branch): Независимая линия разработки.
• Хеш (SHA-1): Уникальный идентификатор каждого коммита.
• Статусы файлов: Untracked, Modified, Staged, Committed.
• Untracked(Неотслеживаемый)
• Файл новый в проекте, и GIT еще не следит за его изменениями.
• Modified (Измененный)
Файл уже отслеживается GIT, но в нем есть изменения, которые еще не подготовлены к коммиту.
• Staged (Подготовленный / В индексе)
• Изменения файла добавлены в "staging area" (индекс) и будут включены в следующий коммит.
• Committed (Зафиксированный)
• Изменения файла сохранены в локальном репозитории (в истории коммитов).

5. Базовая Настройка GIT

После установки настройте ваше имя пользователя и адрес электронной почты. Эти данные
будут отображаться в каждом вашем коммите.
git config --global user.name "Ваше Имя"
git config --global user.email "ваш@email.com"
Вы также можете настроить текстовый редактор по умолчанию, например Visual S tudio Code:
git config --global core.editor "code --wait"

6.

Начало Работы: Основные Команды GIT
git init
git clone
Инициализирует новый пустой Git-репозиторий в текущем каталоге. Создает скрытую
папку .git со всей необходимой служебной информацией.
Создает локальную копию существующего удаленного репозитория. Это основной
способ начать работу над проектом, который уже размещен онлайн.
git init
git clone <URL-репозитория>
git status
git add
Показывает текущее состояние рабочего каталога и индекса: какие файлы изменены,
добавлены в индекс или являются новыми (untracked).
Добавляет изменения из рабочего каталога в индекс (staging area), подготавливая их к следующему коммиту.
git status
git add <файл>
git add .
git commit
git log
Сохраняет проиндексированные изменения в репозитории как новый коммит. Требует
информативного сообщения.
Показывает историю коммитов. Полезные опции: --oneline для краткого вывода и -graph для визуализации веток.
git commit -m "Описание изменений"
git log
git log --oneline --graph

7. Важно помнить порядок!

8. Работа с Ветками (Branches)

Ветки — это одна из самых мощных функций Git, позволяющая
вести параллельную разработку, экспериментировать с
новыми функциями без воздействия на основную кодовую
базу и легко объединять изменения.

9. Создание и переключение веток

• Создание новой ветки немедленно указывает на текущий коммит, позволяя вам начать новую линию
разработки.
git branch <имя_ветки> — создать новую ветку.
git checkout <имя_ветки> — переключиться на иную ветку.
git switch <имя_ветки> — альтернатива checkout.
• Слияние позволяет объединить изменения из одной ветки в другую. Git старается сделать это
автоматически, но иногда могут возникать конфликты.
git merge <имя_ветки>
Разрешение конфликтов: Е сли Git не может автоматически слить изменения, он помечает
конфликтующие файлы. Вам нужно вручную отредактировать эти файлы, удалить маркеры конфликтов и
затем выполнить git add и git commit.

10. Взаимодействие с удаленными репозиториями

Для совместной работы и резервного копирования проектов Git позволяет взаимодействовать с
удаленными репозиториями, такими как GitHub, GitLab или Bitbucket.
Добавление удаленного репозитория
После инициализации локального репозитория вы можете связать его с удаленным сервером.
git remote add origin <URL>
Origin — это стандартное имя для основного удаленного репозитория.
Отправка Изменений (Push)
git push -u origin main
Флаг -u (--set-upstream) устанавливает удаленную ветку в качестве
отслеживаемой, что позволяет в будущем использовать просто git
push без дополнительных аргументов.

11. Получение изменений (pull)

Команда git pull загружает изменения с удаленного репозитория и
автоматически сливает их с вашей текущей локальной веткой.
Форки и pull requests
Форк (fork): создание личной копии чужого репозитория на сервере
(например, на github), чтобы вы могли свободно вносить изменения.
Pull request (запрос на слияние): механизм для предложения ваших
изменений в чужой репозиторий. Другие разработчики могут
просмотреть, обсудить и принять ваши изменения.

12. Отмена изменений (Undo) в Git

Отмена в рабочей директории
Git restore <file> #откат изменений
Git checkout -- <file> #старая версия отката
Отмена в рабочей директории
Git restore -- <file> #откат изменений в staged
Git reset HEAD <file> #старая версия отката
Отмена коммитов
Git reset –soft HEAD~1 #изменения остаются в staged
Git reset – hard HEAD~1 #полное удаление(опасно)
Отмена опубликованного коммита
(если уже push):
Git revert <commit-hash> #новый коммит, отменяющий
старый
Просмотр изменений перед отменой: Git diff
# изменения в рабочей директории
Git diff –staged # изменения в staged

13. Разница между git pull и git fetch

Команда
Действие
git fetch
Загружает изменения с сервера, но не
сливает с локальной веткой
git pull
git fetch + git merge (автоматическое
слияние)

14. Как обновить локальную ветку?

Если удалённая ветка
изменилась:
git fetch origin
# получить изменения
git merge origin/main
# вручную слить с локальной веткой
# или
git pull origin main
# fetch + merge в одной команде
Конфликты при push
git push --force # перезаписать историю (опасно для командной работы!)
git push --force-with-lease # безопаснее (проверяет, что никто не внёс
изменения)

15. GitHub vs GitLab vs Bitbucket

Характеристика
Бесплатный приватный
репозиторий
GitHub
(с ограничениями)
GitLab
Bitbucket
+
+
CI/CD в бесплатной
версии
(Actions)
+
Pipelines
Интеграция с Jira
Через плагины
+
родная интеграция
Self-hosted (локальная
установка)
(только GitHub
Enterprise)
+
Bitbucket Data Center
Встроенный DevOps
-
+
-
GitHub — для open-source, крупных сообществ, интеграции с Actions.
GitLab — для DevOps, встроенного CI/CD и self-hosted решений.
Bitbucket — для команд, использующих Atlassian (Jira, Confluence).

16.

Полезные (Продвинутые) Команды GIT
Эти команды помогут вам в более сложных сценариях, позволяя отменять изменения, временно сохранять их и детально
просматривать историю.
Отмена Изменений
Временное Сохранение
Изменений (Stash)
Просмотр Изменений (Diff)
изменения в рабочем каталоге для
git stash временно сохраняет все
различными состояниями файлов,
указанного файла, возвращая его к
незафиксированные изменения (как
помогая понять, что именно было
состоянию последнего коммита или
проиндексированные, так и нет),
изменено.
индекса.
позволяя вам переключиться на
git restore <файл>: Отменяет
git reset --hard HEAD: Осторожно!
Эта команда сбрасывает рабочий
каталог и индекс к состоянию
другую задачу, а затем вернуться к
git stash: Сохранить текущие
изменения.
git diff --staged: Изменения,
добавленные в индекс, но не
git stash pop: Применить последнее
сохранение и удалить его из стека.
git diff: Изменения в рабочем
каталоге, не добавленные в индекс.
работе.
последнего коммита, удаляя все
незафиксированные изменения.
git diff показывает разницу между
закоммиченные.
git diff <коммит1> <коммит2>:
Разница между двумя коммитами.

17.

Советы и Лучшие Практики GIT
Эффективное использование Git включает в себя не только знание команд, но и применение лучших практик, которые улучшают совместную работу
и историю проекта.
Хорошие Сообщения Коммитов
Частота Коммитов
Использование .gitignore
Пишите краткие, но информативные сообщения
Коммитьте часто и небольшими порциями.
Файл .gitignore позволяет Git игнорировать
коммитов. Первая строка (до 50 символов)
Каждый коммит должен представлять собой
определенные файлы и папки (например,
должна быть кратким описанием. После пустой
законченное, логическое изменение. Это
скомпилированные файлы, временные файлы,
строки можно добавить более детальное
упрощает отслеживание багов и откат
конфигурации среды). Это помогает
описание изменений.
изменений. Избегайте "гигантских" коммитов.
поддерживать репозиторий в чистоте.
Пример:feat: Add user authentication moduleThis
commit introduces a new user authentication
system,including signup, login, and password reset
functionalities.
Пример:/node_modules.env*.log

18.

Заключение: GIT — Ваш Маст-Хэв Навык
Git – это не просто инструмент, это неотъемлемая часть современной разработки программного обеспечения. Овладение им открывает двери для эффективного
сотрудничества, управления проектами и поддержания порядка в коде.
Надежность и Безопасность
1
Каждый коммит — это снимок проекта, который никогда не потеряется, обеспечивая полную историю всех
изменений.
Улучшенное Сотрудничество
2
Позволяет нескольким разработчикам одновременно работать над одним проектом,
эффективно объединяя изменения.
Профессиональный Рост
3
Знание Git — это базовое требование для большинства вакансий
разработчиков. Оно увеличивает вашу ценность на рынке труда.
Дополнительные Ресурсы для Изучения
Pro Git Book: Бесплатная онлайн-книга, исчерпывающе описывающая Git: git-scm.com/book/ru/v2
Интерактивные тренажеры: learngitbranching.js.org (визуализирует команды Git)
Документация GitHub/GitLab: Изучите конкретные рабочие процессы платформ.
English     Русский Правила