🏠 Домашнее задание 12

К оглавлению урока

Задание (дословно из LMS)

Linux: Домашнее задание 12
  1. Создайте новый репозиторий GitHub. Добавьте в него файл .gitignore
  2. Склонируйте этот репо на свой компьютер с использованием созданного удалённого репозитория.
  3. Создайте новую ветку с именем feature, внесите в неё несколько изменений в файлах (должно быть 2 файла: README.md и .gitignore) и закоммитьте их.
  4. Запушьте эти изменения в удалённый репо. (Убедитесь, что ветка feature появилась в Github.)
  5. Воспользуйтесь командой git commit --amend, чтобы изменить сообщение к последнему коммиту в ветке feature, добавив в сообщение слово ammend.
  6. Переключитесь на ветку main и выполните git merge feature, чтобы объединить ветку feature с main.
  7. Создайте текстовый файл и допишите в него команды из истории команд (history > history.txt), выполните commit с этим файлом и запушьте его в ветку main.

Пошаговое решение

Подготовка окружения

Убедитесь, что Git настроен и SSH-ключ добавлен на GitHub (см. Занятие 13).

git --version
git config --global user.name "Your Name"
git config --global user.email "you@example.com"

Шаг 1: Создание репозитория на GitHub

  1. Перейдите на github.com и нажмите «New repository».
  2. Укажите название (например, homework12).
  3. Поставьте галочку «Add a README file» и выберите шаблон .gitignore (например, для Python).
  4. Нажмите «Create repository».

Шаг 2: Клонирование репозитория

git clone git@github.com:YOUR_USERNAME/homework12.git
cd homework12

Шаг 3: Создание ветки feature и коммит

# Создаём ветку feature и переключаемся
git checkout -b feature

# Вносим изменения в README.md
echo "## Feature changes" >> README.md

# Вносим изменения в .gitignore
echo "*.log" >> .gitignore

# Добавляем оба файла и коммитим
git add README.md .gitignore
git commit -m "Add feature changes"

Шаг 4: Push ветки feature

git push origin feature

Перейдите на GitHub и убедитесь, что ветка feature появилась в списке веток.

Шаг 5: git commit --amend — добавляем слово "ammend"

Изменяем сообщение последнего коммита, добавляя слово ammend (именно так, с двойной m, как в задании).

git commit --amend -m "Add feature changes ammend"
Важно: после commit --amend хэш коммита изменился. Теперь при попытке обычного push на origin feature Git откажет. Для отправки потребуется: git push --force origin feature (допустимо, так как ветка feature — личная).
Никогда не делайте git push --force на main/master!

Шаг 6: Переключиться на main и выполнить merge

# Переключаемся на main
git checkout main

# Объединяем ветку feature с main
git merge feature

Git создаст merge commit. Посмотрите историю:

git log --oneline --graph

Шаг 7: history.txt и финальный push

# Записываем историю команд в файл
history > history.txt

# Добавляем и коммитим
git add history.txt
git commit -m "Add command history"

# Пушим в main
git push origin main

Проверка в VS Code

  1. Откройте папку репозитория в VS Code
  2. В боковой панели Source Control (Ctrl+Shift+G) убедитесь, что нет непроиндексированных изменений
  3. Откройте Terminal (Ctrl+`) и выполните git log --oneline — должны быть видны все коммиты
  4. Перейдите на GitHub и убедитесь, что все изменения появились в ветке main

Связь с разделами урока