diff --git a/HomeTask3.md b/HomeTask3.md new file mode 100644 index 0000000..4014b3a --- /dev/null +++ b/HomeTask3.md @@ -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. \ No newline at end of file