Перейдём от проб к годовому проекту: выберем работающий сайт, сохраним его версии в частном репозитории со своим именем и убедимся, что учитель получил доступ. Дальше весь год будем развивать этот же сайт.
Предыдущий урок: 05 — Красивый сайт с Bootstrap · Следующий урок: 07 — Место для дополнительного урока
На сенсорном экране проведите вправо для перехода к следующему уроку, влево — к предыдущему.
Регистрируем годовой проект и предоставляем доступ учителю
С этого урока продолжаем один годовой проект в одном частном репозитории GitHub. Имя репозитория должно соответствовать шаблону FirstNameLastNameRazor: ваше имя и фамилия на английском, без пробелов, затем Razor. Например: NoaCohenRazor. Так учитель узнает ваш проект, когда скачает его на свой компьютер с помощью Clone.
Добавьте учителя как Collaborator, чтобы он мог скачать код, запустить сайт, проверить вашу работу и помочь при неполадках. Чтобы учитель видел последнюю работу, нужно выполнить Push; Commit, оставшийся на вашем компьютере, к нему не попадёт.
Учитель будет оценивать постоянную работу и усилия в течение года по датам работы, содержимому изменений и понятным сообщениям Commit, а также вашим объяснениям и самостоятельным изменениям. В каждом сообщении пишите, что изменили: так и вы, и учитель сможете следить за продвижением и найти момент появления ошибки. Загрузка целого проекта в последний момент, даже созданного с помощью ИИ-агента, не показывает годовой процесс работы или понимание кода.
Выбираем сайт для дальнейшего развития
Откройте и запустите оформленный вами сайт. Выберите проект, содержимое и оформление которого хотите развивать дальше.
Если прежний пробный проект перестал работать и вы хотите начать заново, создайте проект Razor Pages в новой папке по инструкции VS Code, инструкции Visual Studio или инструкции Rider. Постепенно перенесите нужные тексты, изображения и оформление, проверяя каждое изменение. Папки прежних пробных проектов можно оставить на компьютере.
Начинаем сохранять версии, когда сайт открывается и содержит выбранные вами материалы и оформление. Дальше продолжаем этот же проект; восстанавливать все прежние эксперименты в истории не нужно.
Если создаёте новый проект сейчас, задайте и проекту, и решению имя FirstNameLastNameRazor со своими данными, следуя инструкции настройки. В пробных инструкциях имя свободное; на этом этапе используйте обязательное личное имя. Если существующий проект уже работает под другим именем, вручную переименовывать файлы или классы не нужно; имя репозитория GitHub будет соответствовать установленному личному шаблону.
Если проект уже использует Git, продолжайте в существующем репозитории. Если он уже подключён к GitHub, пропустите создание нового репозитория и выполните проверку загрузки ниже.
После регистрации продолжаем в том же репозитории и сохраняем историю. Можно отдельно экспериментировать в другом проекте, но годовая работа остаётся в зарегистрированном репозитории. Если хотите заменить годовой проект или он сломался, обратитесь к учителю перед переходом в другой репозиторий; не удаляйте историю и не заменяйте её новой загрузкой всего сайта.
Часть первая: сохраняем версии на компьютере с Git
Git хранит историю в папке проекта на компьютере. GitHub — сетевой сервис, куда мы загрузим историю во второй части. Делать Commit и сравнивать версии можно и без интернета.
| Действие | Что сохраняется или показывается? |
|---|---|
| Save | Содержимое текущего файла сохраняется на диск |
| Diff | Разница между версией в Git и вашим изменением |
| Stage | Выбор изменений для следующей версии |
| Commit | Версия с сообщением сохраняется в локальной истории |
Выбираем папку репозитория
Если вы создали сайт в Rider, на этом уроке выполняйте действия Git по инструкции VS Code. Установите VS Code, если его ещё нет, и откройте через File → Open Folder папку того же репозитория по объяснению ниже. Можно продолжать редактировать и запускать сайт в Rider; открытие папки в VS Code не создаёт новый проект и не заменяет существующую работу.
В Visual Studio выберите внешнюю папку решения, содержащую файл .sln или .slnx и папку проекта. В VS Code выберите папку со всеми файлами сайта; если есть решение и внутренняя папка проекта, выберите внешнюю папку решения.
Это папка одного вашего сайта. Не выбирайте source/repos, где находятся и другие проекты, и не создавайте дополнительный репозиторий внутри Pages.
Если Git не установлен или терминал не распознаёт команду git, обратитесь к учителю за помощью с установкой, прежде чем продолжать.
Первая настройка: имя и электронная почта в Git
До первого коммита укажите Git, кто вы. Вход в GitHub не заменяет эту настройку.
В VS Code выберите Terminal → New Terminal; в Visual Studio — View → Terminal. В окне внизу экрана выполните следующие две команды, каждую отдельно, нажимая Enter. Замените имя и адрес электронной почты из примеров своими данными, сохранив кавычки:
git config --global user.name "Your Name"
git config --global user.email "yourname@gmail.com"
В первой строке укажите своё имя. Во второй — личный адрес Gmail, который будете использовать в GitHub во второй части. Обычно команды завершаются без сообщения — это нормально.
Настройка сохраняется для всех проектов текущего пользователя операционной системы на этом компьютере. На личном компьютере её выполняют один раз; если несколько учеников работают под одной учётной записью компьютера, каждый перед работой должен указать свои данные.
Если Git показывает Please tell me who you are или просит настроить user.name и user.email, выполните обе команды и повторите коммит. Если команда git не распознаётся, обратитесь к учителю за помощью с установкой Git.
Подготавливаем файлы для сохранения версий
В папке, выбранной корнем репозитория, откройте .gitignore в редакторе. Если его нет, создайте через New File с точным именем .gitignore. Добавьте следующие строки и сохраните файл, чтобы результаты сборки, локальные базы данных и файлы окружения оставались на компьютере:
**/bin/
**/obj/
.vs/
artifacts/
*.db
*.db-*
*.sqlite
*.sqlite3
.env
.env.*
**/appsettings.Local.json
**/secrets.json
node_modules/
.DS_Store
Не сохраняйте пароли или ключи в коде. .gitignore помогает не включать локальные файлы в новые коммиты, но не удаляет из истории файл, уже сохранённый в Commit. Если личный файл уже есть в истории, остановитесь перед Push и покажите учителю.
Создаём локальный репозиторий — выберите свой редактор
VS Code
Откройте папку репозитория через File → Open Folder. В Source Control нажмите Initialize Repository. Нажмите + рядом с Changes, введите сообщение, например Save my styled website, и нажмите Commit.
Visual Studio
Откройте решение и выберите Git → Create Git Repository. В разделе Other выберите Local only или Local, проверьте путь и подтвердите создание локального репозитория.
Откройте View → Git Changes. Если в Changes остались файлы, добавьте их с помощью +, напишите сообщение, например Save my styled website, и выберите Commit Staged. Если мастер уже создал Commit, убедитесь, что в него включён сайт.
Перед коммитом проверьте, что включены файлы сайта и .gitignore, а файлов сборки из bin и obj в списке нет. В Visual Studio сохраните также файл решения.
Справка: локальный репозиторий в Visual Studio · Stage и Commit в VS Code
Смотрим изменения и сохраняем ещё одну версию
- Измените предложение на главной странице, сохраните и запустите сайт.
- Откройте Source Control в VS Code или Git Changes в Visual Studio и нажмите на файл, чтобы увидеть Diff.
- Объясните, какая строка изменилась. Выполните Stage и Commit с сообщением, описывающим изменение.
- В VS Code откройте Source Control Graph; в Visual Studio — Git → View Branch History. Найдите сохранённые версии.
- Для завершения упражнения верните в редакторе прежний текст предложения. Сохраните, выполните Stage и Commit с сообщением, например
Restore text after Git practice. В истории останутся и пробная версия, и версия с возвратом, а на сайте снова появится содержимое, выбранное в начале урока.
Небольшой эксперимент: возвращаемся к сохранённой версии
Выполняйте эксперимент только после сохранения нужной работы в Commit и при отсутствии ожидающих изменений. Следующая отмена удалит пробную правку из файла; не выбирайте отмену изменений во всех файлах.
- Замените одно слово в заголовке в
Pages/Index.cshtml, сохраните и посмотрите в браузере. На этот раз не выполняйте Stage или Commit. - Откройте Diff файла и проверьте, что он содержит только пробное изменение.
- В VS Code нажмите на файл правой кнопкой и выберите Discard Changes. В Visual Studio выберите Undo Changes для того же файла в Git Changes. Подтвердите отмену изменения только в этом файле.
- Снова запустите сайт и убедитесь, что заголовок вернулся к последней версии, сохранённой в Commit.
Справка: отмена правки в VS Code · Отмена изменений в Visual Studio
У вас есть версии на компьютере, и вы умеете проверять изменение и возвращаться от эксперимента к последней версии. Теперь загрузим их на GitHub.
Часть вторая: загружаем версии на GitHub
Commit сохраняет на компьютере; Push загружает на GitHub. Первая публикация создаёт репозиторий в сети и связывает с ним локальный. После этого дополнительные версии загружают с помощью Push.
Создаём учётную запись и входим
Откройте GitHub и зарегистрируйтесь со своим личным адресом Gmail. Подтвердите электронную почту. Если учётная запись уже есть, используйте её. Создавать репозиторий на сайте перед публикацией из редактора не нужно.
В Visual Studio можно войти через File → Account Settings и добавить свою учётную запись GitHub. В VS Code вход будет предложен при публикации. Убедитесь, что используете правильную личную учётную запись.
Публикуем частный репозиторий — выберите свой редактор
В поле имени репозитория введите личное имя по шаблону FirstNameLastNameRazor, например NoaCohenRazor. Если уже есть подключённый репозиторий с другим именем, обратитесь к учителю, чтобы согласовать имя и локальное подключение без потери истории; не создавайте замену репозиторию.
VS Code
Откройте View → Command Palette → Publish to GitHub. Войдите, если потребуется, введите личное имя репозитория и выберите Publish to GitHub private repository. Дождитесь завершения загрузки.
Visual Studio
В окне Git Changes нажмите Push (стрелка вверх). Если удалённого репозитория ещё нет, продолжите публикацию на GitHub. Проверьте учётную запись и имя репозитория, выберите Private и подтвердите Create and Push.
Если репозиторий уже подключён, Push загружает в него версии; создавать ещё один репозиторий не нужно.
Если появляется Repository already exists или загрузка не удалась, покажите сообщение учителю. Не пытайтесь снова создать репозиторий с тем же именем и не удаляйте работу.
Справка: публикация из VS Code · Загрузка из Visual Studio
Проверяем загрузку версий и предоставляем доступ учителю
- Откройте репозиторий на GitHub и убедитесь, что есть метка Private.
- Откройте
Pages/Index.cshtmlвнутри проекта и проверьте наличие последнего содержимого. Откройте список Commits и посмотрите сообщения сохранённых версий. - В репозитории выберите Settings → Collaborators → Add people. Если GitHub запросит дополнительное подтверждение личности, выполните его.
- Найдите
3strategy@gmail.com, выберите учётную запись3strategyи подтвердите отправку приглашения. Collaborator — участник, получающий доступ к частному репозиторию; одной отправки адреса репозитория для доступа недостаточно. - Отправьте адрес репозитория туда, куда попросил учитель, и укажите полные имя и фамилию. Учитель получит доступ после принятия приглашения.
- Уточните у учителя, что приглашение принято и он может открыть репозиторий и выполнить Clone. Если приглашение ещё ожидает ответа, сообщите ему; регистрация проекта завершится после подтверждения доступа.
Справка: приглашение участников в частный репозиторий
Загрузка кода не запускает сайт в интернете. Продолжаем запускать его на компьютере из редактора.
Загружаем ещё одно изменение
Измените абзац, сохраните и проверьте в браузере. Посмотрите Diff, выполните Stage и Commit. Затем выберите Source Control → … → Push в VS Code или Git → Push в Visual Studio. Обновите репозиторий на GitHub и убедитесь, что новое изменение тоже появилось.
Завершив проверку загрузки, верните в редакторе текст абзаца к выбранному до эксперимента варианту. Сохраните, выполните Stage и Commit, затем Push. Проверьте на GitHub, что версия с возвратом тоже есть в истории. Так перейдём к следующему уроку с прежними содержимым и оформлением, потренировавшись сохранять и загружать изменения.
Продолжаем на этом или другом компьютере
Pull получает версии, загруженные на GitHub. Clone создаёт на другом компьютере копию репозитория и его истории.
Переходите на другой компьютер? Один раз выполните Clone
Загрузив работу с первого компьютера, войдите в ту же учётную запись GitHub на другом. Clone скачивает репозиторий и его историю в локальную папку; создавать там новый проект не нужно.
- В VS Code: выберите View → Command Palette → Git: Clone, вставьте адрес своего частного репозитория, выберите родительскую папку, например
WebProjects, затем откройте созданную папку. - В Visual Studio: на стартовом экране выберите Clone a repository, вставьте адрес, выберите место сохранения и нажмите Clone. Откройте файл решения из репозитория.
На этом компьютере тоже установите средства разработки по своей инструкции. Затем на каждом занятии открывайте ту же копию и выполняйте Pull; повторять Clone не требуется.
Порядок работы со следующего урока
- В начале занятия, после сохранения предыдущей работы в Commit: откройте правильный репозиторий и выполните Pull. В VS Code: Source Control → … → Pull; в Visual Studio: Git → Pull.
- После существенного изменения: сохраните, запустите, посмотрите Diff, выполните Stage и Commit с понятным сообщением о том, что изменилось.
- В конце: выполните Push и проверьте на GitHub, что изменение появилось, даже если всегда работаете на одном ноутбуке.
- Если возникает конфликт или ошибка синхронизации, обратитесь к учителю, не удаляя работу и не выполняя Force Push.
За год требуется не менее 50 содержательных коммитов. Начинаем накапливать их сейчас; создавать версии прошлых пробных проектов задним числом или дробить бессмысленное изменение ради счётчика не нужно.
Пишем сообщения Commit, помогающие понять продвижение
Пишите короткое сообщение на иврите или английском, описывающее сделанное изменение. Например: Add navigation links to home page или Fix missing image on home page. Сообщения update, stuff или final не объясняют, что изменилось. Перед Commit прочитайте Diff и убедитесь, что сообщение соответствует выбранным изменениям.
Учитель будет смотреть на последовательность работы в течение года и понятность сообщений Commit, а также на содержимое изменений и ваше умение объяснять их. Одного количества коммитов недостаточно: сохраняйте значимые изменения в процессе работы и регулярно выполняйте Push.
Проверка понимания
Перед переходом к следующему уроку проверьте, что содержимое и оформление сайта вернулись к состоянию, выбранному в начале урока, файл .gitignore сохранён в репозитории, а в Source Control или Git Changes нет ожидающих изменений. История сохраняется и показывает эксперименты и возврат после них.
Покажите версию, сохранённую на компьютере, и ту же версию на GitHub. Объясните разницу между Save, Commit и Push и какое действие вернуло заголовок после эксперимента.
Регистрация проекта завершена, когда у вас есть работающий сайт, частный репозиторий с вашим именем по шаблону FirstNameLastNameRazor, актуальный код и история коммитов с понятными сообщениями, а учитель подтвердил, что может получить доступ к репозиторию и выполнить Clone. Дальше весь год продолжаем в этом же репозитории.