Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 146 additions & 0 deletions HomeTask3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
# Домашнее задание #3

В качестве домашней работы к 3 заданию Вам необходимо отправить pull request с инструкцией из 2 задания в этот репозиторий, дополнив эту инструкцию командами для работы с удалённым репозиторием. Не забывайте создавать свою ветку под изменения и следите за тем, чтобы терминал был открыт именно в папке Вашего форка. Успехов!

# Инструкция по работе с Git

## 1. Установите Git
Cкачать Git можно здесь: https://git-scm.com/downloads

После установки запустите терминал и введите команду: __*git --version*__, он вернет вам версию Git, установленную на вашем компьютере, только если программа установлена успешно.
Далее необходимо представиться, введите в терминале эти две строки:

__*git config --global user.name "имя"*__

__*git config --global user.email "почта@mail.ru"*__

## 2. Создайте репозиторий

Чтобы создать новый репозиторий и начать отслеживать проект с помощью Git, в терминале откройте главную папку проекта и наберите следующую команду:

__*git init*__

Эта команда создаст скрытый каталог .git для вашего проекта, в котором хранятся все внутренние данные для отслеживания репозитория.

## 3. Подготовьте файлы и научитесь делать коммиты

Чтобы проверить статус репозитория, наберите следующую команду, находясь в каталоге проекта:

__*git status*__

Эта команда показывает состояние данных: она отображает неотслеживаемые файлы, внесенные в отслеживаемые файлы изменения, а также сообщает, какую ветку проекта вы используете и показывает, не расходится ли она с веткой на сервере.

**Подготовка к коммиту**

Перед совершением коммита файлы необходимо подготовить, т. е. поместить их в некую область хранения (staging area). Для этого используется команда:

__*git add*__:

+ Можно добавить только один определённый файл, например:


__*git add file_1.md*__

+ Можно добавить несколько файлов:


__*git add file_1.md file_2.md file_3.md*__


+ Можно добавить все файлы проекта сразу:


__*git add*__

**Коммит**

Коммит – это снимок кода в определенный момент времени, который сохраняется в истории коммитов репозитория. После добавления всех отслеживаемых файлов с помощью команды git add, можно совершить коммит:

__*git commit -m "Сообщение коммита"*__

Сообщение коммита используется для его идентификации в истории коммитов. Оно должно кратко описывать совершенные вами изменения.

# 4. Посмотрите историю коммитов

Чтобы увидеть все коммиты проекта, используйте следующую команду:

__*git log*__

Будет показана подробная информация по каждому коммиту: имя автора, сгенерированный хеш для коммита, дата и время коммита, а также его текст.

Чтобы вернуться к зафиксированному одним из коммитов состоянию кода проекта, вы можете используйте следующую команду:

__*git checkout <хеш коммита>*__

Чтобы вернуться к последнему коммиту (актуальной версии кода проекта), введите команду:

__*git checkout master*__

# 5. Настройте игнорирование файлов

Если вы не хотите отслеживать или добавлять в область хранения определённые файлы, можно создать обычный текстовый файл, без расширения,
Называться он должен __*.gitignore*__ (с точкой в начале), в основной папке проекта.
Внутри него перечислите имена файлов и папок, которые вы не хотите отслеживать (каждый игнорируемый файл и папка должны быть указаны с новой строки).

# 6. Изучите ветвление

Ветвь или ветка – одна из версий репозитория, которая отличается от основного рабочего проекта или от других версий. С помощью Git мы можем создавать множество таких альтернативных ветвей, чтобы другие версии кода проекта существовали и отслеживались параллельно.
Это позволяет нам добавлять новые (экспериментальные, незавершенные и потенциально опасные) функции в отдельных ветках, не трогая официальную стабильную версию кода, которая обычно хранится в ветке мастер (master).

Когда мы инициализируем репозиторий и начинаем делать коммиты, они по умолчанию сохраняются в ветке мастер.

__Создание новой ветки__

Вы можете создать новую ветвь с помощью команды:

__*git branch <название новой ветки>*__


__Смена ветвей__

Для перехода к другой ветке, используйте команду:

__*git checkout <название ветки>*__

Вы можете работать над различными функциями и иметь отдельную ветвь кода проекта для каждой из них. Таким способом в коде фиксируются изменения, которые затрагивают только эту ветвь. Затем вы можете переключиться на другую, на которую сделанные изменения не повлияют.
Чтобы посмотреть список ветвей проекта, используйте команду:


__*git branch*__

Чтобы вернуться к мастер-ветви, используйте команду:

__*git checkout master*__

По команде:
__*git checkout -b <название>*__ создается новая ветка и сразу же делается переход к ней.

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

Для этого используется следующая команда:

__*git merge <название>*__

Производим изменения и подготавливаем ветку к слиянию.
Проводим слияние.
В <название> нужно вписать название ветви, которую вы хотите интегрировать в текущее ответвление.

__Удаление ветви__
Для удаления ветви используется команда:

__*git branch -d <название ветви>*__

# 7 Работа с удаленным репозиторием

__*git clone*__ — создание копии (удаленного) репозитория
__*git fetch*__ и __*git pull*__ — забираем изменения из центрального репозитория
Для синхронизации текущей ветки с репозиторием используются команды git fetch и git pull.

__*git fetch*__ — забрать изменения удаленной ветки из репозитория по умолчания, основной ветки; той, которая была использована при клонировании репозитория. Изменения обновят удаленную ветку (remote tracking branch), после чего надо будет провести слияние с локальной ветку командой git merge.

git fetch /home/username/project — забрать изменения из определенного репозитория.

__*git push*__ — вносим изменения в удаленный репозиторий
После проведения работы в экспериментальной ветке, слияния с основной, необходимо обновить удаленный репозиторий (удаленную ветку). Для этого используется команда git push.