🏠 Домашнее задание 12
Задание (дословно из LMS)
Linux: Домашнее задание 12
- Создайте новый репозиторий GitHub. Добавьте в него файл
.gitignore - Склонируйте этот репо на свой компьютер с использованием созданного удалённого репозитория.
- Создайте новую ветку с именем
feature, внесите в неё несколько изменений в файлах (должно быть 2 файла:README.mdи.gitignore) и закоммитьте их. - Запушьте эти изменения в удалённый репо. (Убедитесь, что ветка
featureпоявилась в Github.) - Воспользуйтесь командой
git commit --amend, чтобы изменить сообщение к последнему коммиту в веткеfeature, добавив в сообщение слово ammend. - Переключитесь на ветку
mainи выполнитеgit merge feature, чтобы объединить веткуfeatureсmain. - Создайте текстовый файл и допишите в него команды из истории команд (
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
- Перейдите на github.com и нажмите «New repository».
- Укажите название (например,
homework12). - Поставьте галочку «Add a README file» и выберите шаблон
.gitignore(например, для Python). - Нажмите «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
- Откройте папку репозитория в VS Code
- В боковой панели Source Control (Ctrl+Shift+G) убедитесь, что нет непроиндексированных изменений
- Откройте Terminal (Ctrl+`) и выполните
git log --oneline— должны быть видны все коммиты - Перейдите на GitHub и убедитесь, что все изменения появились в ветке main
Связь с разделами урока
- Шаги 3–4: Теория: git merge и git checkout
- Шаг 5: Теория: git commit --amend
- Шаги 6–7: Примеры: workflow merge