- Введение
- Создание учетной записи GitHub
- Установка Git
- Первоначальная настройка Git
- Создание локального репозитория
- Основные команды локального Git
- Работа с ветками
- Работа с удаленным репозиторием
- Работа с форками
- Слияние веток
- Порядок выполнения практической работы
- Частые ошибки
- Краткая таблица команд
- Вывод
Git — это распределенная система контроля версий. Она используется для сохранения истории изменений проекта, работы с разными версиями файлов и организации совместной разработки.
Git позволяет:
- сохранять изменения в виде коммитов;
- просматривать историю проекта;
- создавать отдельные ветки для разных задач;
- объединять изменения из разных веток;
- возвращаться к предыдущим версиям проекта;
- работать с удаленными репозиториями.
GitHub — это онлайн-сервис для хранения Git-репозиториев. Он позволяет загружать проекты в интернет, просматривать историю изменений, работать с ветками и организовывать совместную разработку.
Главное различие между Git и GitHub:
| Инструмент | Назначение |
|---|---|
| Git | Программа для контроля версий на компьютере |
| GitHub | Онлайн-платформа для хранения Git-репозиториев |
В данной практической работе необходимо разработать инструкцию по работе с Git, оформить ее в формате Markdown, создать несколько веток и объединить их в основную ветку.
Для работы с удаленными репозиториями необходимо создать учетную запись GitHub.
- Открыть сайт GitHub.
- Нажать кнопку Sign up.
- Ввести адрес электронной почты.
- Создать пароль.
- Указать имя пользователя.
- Подтвердить регистрацию через электронную почту.
- Войти в созданный аккаунт.
После регистрации пользователь получает возможность создавать репозитории, загружать проекты, работать с ветками и просматривать историю изменений.
Для создания репозитория необходимо:
- Нажать кнопку New repository.
- Ввести имя репозитория, например:
git-instruction- Выбрать тип репозитория:
| Тип | Описание |
|---|---|
| Public | Репозиторий доступен всем пользователям |
| Private | Репозиторий доступен только владельцу и приглашенным пользователям |
- Нажать кнопку Create repository.
После создания GitHub покажет ссылку на репозиторий. Она понадобится для подключения локального проекта к удаленному репозиторию.
Пример ссылки:
https://github.com/username/git-instruction.gitПеред началом работы необходимо установить Git на компьютер.
Для установки Git на Windows необходимо:
- Скачать установщик Git.
- Запустить установочный файл.
- Оставить стандартные настройки установки.
- Завершить установку.
- Открыть программу Git Bash.
- Проверить установленную версию Git.
Команда для проверки версии:
git --versionПример результата:
git version 2.45.0Если версия отображается, значит Git установлен правильно.
Для установки Git в Debian или Ubuntu используется команда:
sudo apt update
sudo apt install gitПроверка версии:
git --versionПример результата:
git version 2.43.0После установки Git необходимо указать имя пользователя и адрес электронной почты. Эти данные будут записываться в историю коммитов.
git config --global user.name "Student"Пример:
git config --global user.name "Ivan Ivanov"git config --global user.email "student@mail.com"Пример:
git config --global user.email "ivanov@mail.com"git config --listПример результата:
user.name=Student
user.email=student@mail.comКоманда git config --list показывает текущие настройки Git.
<<<<<<< HEAD
Локальный репозиторий — это репозиторий, который хранится на компьютере пользователя. В нем находятся файлы проекта и служебная папка .git, где Git хранит историю изменений.
mkdir git-instruction
=======
## 8. Работа с удаленным репозиторием
Удаленный репозиторий — это репозиторий, который хранится на сервере, например на GitHub.
Удаленный репозиторий нужен для того, чтобы хранить проект в интернете, загружать изменения, получать изменения с других устройств и организовывать совместную работу.
### Добавление удаленного репозитория
```bash
git remote add origin https://github.com/username/git-instruction.git
>>>>>>> globalПример:
<<<<<<< HEAD
mkdir my-projectКоманда mkdir создает новую папку.
cd git-instructionПример:
cd my-projectКоманда cd используется для перехода в нужную папку.
git init
=======
git remote add origin https://github.com/student/git-instruction.gitЗдесь:
origin— стандартное имя удаленного репозитория;- ссылка — адрес репозитория на GitHub.
git remote -v
>>>>>>> globalПример результата:
<<<<<<< HEAD
Initialized empty Git repository in C:/Users/User/git-instruction/.git/Команда git init создает локальный Git-репозиторий. После выполнения команды в папке проекта появляется скрытая папка .git.
git statusПример результата:
On branch main
No commits yet
nothing to commitКоманда git status показывает текущее состояние репозитория: текущую ветку, измененные файлы и файлы, подготовленные к коммиту.
Локальная работа с Git включает создание файлов, добавление их в индекс, создание коммитов и просмотр истории изменений.
echo "# Инструкция по Git" > README.md
=======
origin https://github.com/student/git-instruction.git (fetch)
origin https://github.com/student/git-instruction.git (push)Команда показывает список удаленных репозиториев.
git push -u origin main
>>>>>>> globalПример:
<<<<<<< HEAD
echo "# Мой проект" > README.mdКоманда создает файл README.md и записывает в него заголовок.
git add README.mdПример:
git add README.mdКоманда git add добавляет файл в индекс. Индекс — это промежуточная область, куда помещаются изменения перед сохранением в коммит.
git add .Пример:
git add .Команда git add . добавляет в индекс все измененные и новые файлы в текущей папке проекта.
git commit -m "Создан файл README.md"Пример:
git commit -m "Добавлена основная структура инструкции"Коммит — это сохраненная версия проекта. Каждый коммит имеет уникальный идентификатор и сообщение, которое описывает внесенные изменения.
git logПример результата:
commit a1b2c3d4
Author: Student <student@mail.com>
Date: Mon May 13 12:00:00 2026 +0300
Создан файл README.mdКоманда git log показывает полную историю коммитов.
git log --onelineПример результата:
a1b2c3d Создан файл README.mdКоманда git log --oneline показывает историю коммитов в кратком виде.
git diffПример:
git diff README.mdКоманда git diff показывает изменения, которые еще не были добавлены в индекс.
git checkout -- README.mdПример:
git checkout -- README.mdКоманда отменяет несохраненные изменения в указанном файле.
Ветка — это отдельная линия разработки проекта. Ветки позволяют работать над разными частями проекта независимо друг от друга.
В практической работе необходимо использовать три ветки:
| Ветка | Назначение |
|---|---|
main или master |
Основная ветка, структура документа, создание GitHub-аккаунта и установка Git |
local |
Описание команд для работы с локальным Git |
global |
Описание работы с удаленным Git и форками |
git branchПример результата:
* mainЗнак * показывает текущую активную ветку.
git branch localПример:
git branch localКоманда создает новую ветку local.
git checkout localПример результата:
Switched to branch 'local'git checkout -b globalПример результата:
Switched to a new branch 'global'Команда git checkout -b одновременно создает новую ветку и переключается на нее.
git checkout mainПример:
git checkout main
=======
git push -u origin mainПараметр -u связывает локальную ветку с удаленной. После этого для следующих отправок можно использовать просто:
git push
>>>>>>> globalЕсли основная ветка называется master, используется команда:
<<<<<<< HEAD
git checkout mastergit branch
=======
git push -u origin mastergit checkout local
git push -u origin localПример:
git checkout local
git push -u origin localgit checkout global
git push -u origin globalПример:
git checkout global
git push -u origin globalgit pullПример:
git pull origin mainКоманда git pull загружает изменения из удаленного репозитория и объединяет их с текущей веткой.
git fetchПример:
git fetch originКоманда git fetch загружает информацию об изменениях из удаленного репозитория, но не объединяет их автоматически с текущими файлами.
git clone https://github.com/username/git-instruction.gitПример:
git clone https://github.com/student/git-instruction.gitКоманда git clone скачивает удаленный репозиторий на компьютер.
Форк — это копия чужого репозитория, созданная в своем аккаунте GitHub. Форки используются для внесения изменений в чужой проект без прямого доступа к оригинальному репозиторию.
Форк позволяет:
- скопировать чужой проект в свой аккаунт;
- внести изменения в своей копии;
- отправить предложение изменений автору оригинального проекта;
- безопасно работать с проектом, не изменяя исходный репозиторий.
Для создания форка необходимо:
- Открыть чужой репозиторий на GitHub.
- Нажать кнопку Fork.
- Выбрать свой аккаунт.
- Дождаться создания копии репозитория.
После этого в аккаунте появится копия проекта.
git clone https://github.com/username/project.gitПример:
git clone https://github.com/student/example-project.gitcd example-projectПример:
cd example-projectОригинальный репозиторий обычно добавляют под именем upstream.
git remote add upstream https://github.com/original-author/project.gitПример:
git remote add upstream https://github.com/original/example-project.gitgit remote -v
>>>>>>> globalПример результата:
<<<<<<< HEAD
global
local
* mainorigin https://github.com/student/example-project.git (fetch) origin https://github.com/student/example-project.git (push) upstream https://github.com/original/example-project.git (fetch) upstream https://github.com/original/example-project.git (push)
Здесь:
- `origin` — личная копия репозитория;
- `upstream` — оригинальный репозиторий.
### Получение изменений из оригинального репозитория
```bash
git fetch upstream
Пример:
git fetch upstreamgit checkout main
git merge upstream/mainПример:
git checkout main
git merge upstream/mainЭти команды позволяют обновить свою копию проекта изменениями из оригинального репозитория.
После внесения изменений в форк их можно предложить автору оригинального проекта.
Общий порядок:
- Внести изменения в своей копии проекта.
- Создать коммит.
- Отправить изменения в свой репозиторий.
- Открыть GitHub.
- Нажать кнопку Compare & pull request.
- Описать изменения.
- Отправить Pull Request.
Пример команд:
git add .
git commit -m "Исправлена документация"
git push origin mainПосле этого изменения будут доступны в форке на GitHub.
global
По заданию итоговый вариант работы должен быть результатом слияния всех веток в основную ветку main или master.
В данной работе используются ветки:
main
local
globalВетка main содержит основную структуру документа, описание создания учетной записи GitHub и установку Git.
Ветка local содержит описание команд для локальной работы с Git.
Ветка global содержит описание работы с удаленным репозиторием и форками.
git checkout mainПример:
git checkout maingit merge localПример результата:
Updating a1b2c3d..d4e5f6g
Fast-forward
README.md | 50 +++++++++++++++++++++++++++++++++После выполнения команды изменения из ветки local попадают в основную ветку.
git merge globalПример:
git merge globalПосле выполнения команды изменения из ветки global также попадают в основную ветку.
git log --oneline --graph --allПример результата:
* 9f8e7d6 Merge branch 'global'
|\
| * 7a6b5c4 Добавлено описание удаленного Git и форков
* | 5d4c3b2 Merge branch 'local'
|\ \
| * | 3c2b1a0 Добавлены команды локального Git
| |/
* / 1a2b3c4 Создана структура документаКоманда показывает историю коммитов в виде графа.
Ниже приведен общий порядок выполнения практической работы.
mkdir git-instruction
cd git-instructiongit initecho "# Инструкция по работе с Git и GitHub" > README.mdgit add README.mdgit commit -m "main: создана структура README, описаны GitHub и установка Git"git checkout -b localВ ветке local были добавлены разделы, связанные с локальной работой Git.
После внесения изменений был выполнен коммит:
git add README.md
git commit -m "local: добавлены команды локального Git"Сначала был выполнен возврат в основную ветку:
git checkout mainЗатем была создана ветка global:
git checkout -b globalВ ветке global были добавлены разделы, связанные с удаленным репозиторием и форками.
После внесения изменений был выполнен коммит:
git add README.md
git commit -m "global: добавлена работа с удаленным Git и форками"Для получения итогового варианта был выполнен возврат в основную ветку:
git checkout mainЗатем были объединены ветки local и global:
git merge local
git merge globalgit log --oneline --graph --allgit remote add origin https://github.com/username/git-instruction.gitПример:
git remote add origin https://github.com/student/git-instruction.gitgit push -u origin mainЕсли основная ветка называется master, используется команда:
git push -u origin mastergit push -u origin local
git push -u origin globalВ результате на удаленном репозитории GitHub находятся все созданные ветки и итоговый вариант работы в ветке main.
Пример ошибки:
error: pathspec 'main' did not match any file(s) known to gitПричина ошибки: ветка main не существует. Возможно, основная ветка называется master.
Проверить список веток можно командой:
git branchЕсли существует ветка master, нужно перейти в нее:
git checkout masterПример:
nothing to commit, working tree cleanЭто означает, что в проекте нет новых изменений для сохранения.
Проверить состояние можно командой:
git statusПример:
error: remote origin already existsПричина ошибки: удаленный репозиторий origin уже добавлен.
Проверить удаленный репозиторий можно командой:
git remote -vЕсли нужно заменить ссылку, используется команда:
git remote set-url origin https://github.com/username/new-repository.gitПример:
git remote set-url origin https://github.com/student/git-instruction.gitПример:
CONFLICT (content): Merge conflict in README.mdТакая ошибка возникает, если в разных ветках были изменены одни и те же строки файла.
Для исправления необходимо:
- Открыть файл с конфликтом.
- Найти конфликтующие строки.
- Вручную оставить правильный вариант.
- Сохранить файл.
- Добавить исправленный файл в индекс:
git add README.md- Создать коммит:
git commit -m "Исправлен конфликт слияния"| Команда | Назначение | Пример |
|---|---|---|
git --version |
Проверить версию Git | git --version |
git config --global user.name |
Задать имя пользователя | git config --global user.name "Student" |
git config --global user.email |
Задать почту пользователя | git config --global user.email "student@mail.com" |
git config --list |
Посмотреть настройки Git | git config --list |
git init |
Создать локальный репозиторий | git init |
git status |
Проверить состояние репозитория | git status |
git add README.md |
Добавить файл в индекс | git add README.md |
git add . |
Добавить все изменения | git add . |
git commit -m |
Создать коммит | git commit -m "Первый коммит" |
git log |
Посмотреть историю коммитов | git log |
git log --oneline |
Посмотреть краткую историю | git log --oneline |
git branch |
Посмотреть ветки | git branch |
git branch local |
Создать ветку | git branch local |
git checkout local |
Перейти в ветку | git checkout local |
git checkout -b global |
Создать ветку и перейти в нее | git checkout -b global |
git merge local |
Слить ветку с текущей | git merge local |
git remote add origin |
Добавить удаленный репозиторий | git remote add origin ссылка |
git remote -v |
Посмотреть удаленные репозитории | git remote -v |
git push |
Отправить изменения на GitHub | git push origin main |
git pull |
Получить изменения с GitHub | git pull origin main |
git fetch |
Получить изменения без слияния | git fetch origin |
git clone |
Скачать репозиторий | git clone ссылка |
В ходе выполнения практической работы была разработана инструкция по работе с Git и GitHub. Инструкция оформлена в формате Markdown и содержит описание основных команд Git с примерами их использования.
Были рассмотрены этапы создания учетной записи GitHub, установки Git, первоначальной настройки пользователя, создания локального репозитория, работы с файлами, коммитами и историей изменений.
Также была описана работа с ветками. Для выполнения задания использовались ветки main, local и global. Ветка main содержала основную структуру документа, описание создания учетной записи GitHub и установку Git. Ветка local использовалась для описания команд локального Git. Ветка global использовалась для описания работы с удаленным репозиторием и форками.
Итоговый вариант работы был получен путем слияния веток local и global в основную ветку main. После этого результат был отправлен на удаленный репозиторий GitHub.
Таким образом, в ходе практической работы были закреплены навыки работы с Git, ветками, коммитами, удаленными репозиториями и сервисом GitHub.