Верстаем статический web-сайт с помощью Python3x, конфигурация Git
Jazz
Опубликован: | 2024-02-01T03:35:14.000253Z |
Отредактирован: | 2024-02-01T03:35:14.000253Z |
Статус: | публичный |
Продолжаем разрабатывать sitefish - web-приложение для статического web-сайта. В очередной демонстрации я подключу к проекту Git, сделаю первый commit и опубликую код программы на github.com
- социальной сети для программистов и разработчиков, по-совместительству, публичном Git-сервере, который поможет мне впоследствии переместить код sitefish на сервер сети при развёртывании сайта.
В предыдущем выпуске
Замечание: все показанные в этой демонстрации действия выполнены на базе операционной системы Debian, их вполне можно повторить на любой операционной системе с ядром Linux.
На начальном этапе разработки sitefish я собрал ASGI-приложение и запустил его на отладочном сервере. Все необходимые для этого библиотеки Python3x были установлены в специально созданное виртуальное окружение с именем venv
, которое расположено в корневом каталоге sitefish.
Поскольку работа над проектом прерывалась, мне нужно восстановить рабочий терминал. Для этого запускаю его и захожу в корневой каталог sitefish.
$ cd ~/workspace/sitefish/
Активирую виртуальное окружение.
$ source venv/bin/activate
Впоследствии, когда код приложения будет скопирован на сервер сети, мне необходимо будет восстановить виртуальное окружение и установить в него все используемые программой библиотеки. Для этого создаю файл с перечнем установленных в venv
пакетов и их версий.
$ pip freeze > requirements.txt
Можно приступать к инициализации Git.
Инициализация Git
Git - это система контроля версий, с его помощью код удобно хранить, Git хранит все правки кода в хронологической последовательности так называемых коммитов (от англ. commit). Git делает удобной совместную работу над кодом нескольких разработчиков одновременно, и кроме всего прочего, с Git-сервера код удобней всего перенести на сервер сети в процессе развёртывания сайта и синхронизировать при последующих доработках.
Установкой и первоначальной настройкой Git я занимался при подготовке рабочего места web-разработчика. Детали и подробности этого процесса описаны в отдельной статье этого блога по предложенной ссылке. На моей операционной системе Git установлен и настроен.
В терминале, находясь в корневом каталоге sitefish, ввожу следующую команду.
$ git init .
Таким образом я инициализировал в этом каталоге так называемый репозиторий Git, в который программа автоматически добавила все вложенные файлы и каталоги, расположенные в текущем рабочем каталоге терминала - ~/workspace/sitefish/
. Состояние Git-репозитория можно увидеть с помощью следующей команды.
$ git status
В результате её выполнения в моём рабочем терминале образовался вот такой выхлоп:
Текущая ветка: master
Еще нет коммитов
Неотслеживаемые файлы:
(используйте «git add <файл>...», чтобы добавить в то, что будет включено в коммит)
.env
requirements.txt
runserver.py
sitefish/
venv/
индекс пуст, но есть неотслеживаемые файлы
(используйте «git add», чтобы проиндексировать их)
Настройка Git-репозитория
Из выхлопа предыдущей команды я вижу, что потенциально в следующий коммит Git может включить все вложенные файлы и каталоги. Из этого списка мне бы хотелось проигнорировать некоторые сущности. На сервере Git мне не нужен каталог с виртуальным окружением venv
, а так же файлы из вложенных каталогов __pycache__
и создаваемые моим текстовым редактором резервные копии. Открываю в текстовом редакторе новый файл с именем .gitignore
.
$ vim .gitignore
И пишу в него следующее:
__pycache__
*.pyc
*.swp
venv/
Сохраняю файл и покидаю текстовый редактор.
Готовим очередной commit
Проект sitefish я планирую опубликовать на github.com
в публичной "репе", для обитателей этой социальной сети можно кратко описать проект в файле README.md
. Создаю этот файл и открываю его в текстовом редакторе.
$ vim README.md
Вписываю в этот файл пару строчек с описанием проекта произвольной формы, сохраняю и покидаю текстовый редактор.
На предыдущем этапе разработки я разместил в корневом каталоге sitefish некоторый набор вложенных каталогов и файлов с кодом. Всё разработанное в предыдущей демонстрации этого цикла статей мне нужно объединить и поместить в очередной commit. Добавляю все изменения в "репу".
$ git add .
Точка в конце команды обязательна, она обозначает текущий рабочий каталог и все размещенные в нём сущности. И теперь я могу посмотреть список каталогов и файлов, которые будут добавлены в очередной commit.
$ git status
Вот как выглядит выхлоп этой команды в моём терминале.
Перед тем, как создавать новый commit, все помещаемые в него изменения кода можно ещё раз просмотреть с помощью вот такой команды.
$ git diff --staged
И если состояние кода на текущий момент разработчика полностью устраивает, то можно сделать очередной commit.
Commit
Commit можно выполнить следующей командой.
$ git commit -m"Start the project"
В результате в терминале образовался вот такой весёлый выхлоп.
[master (корневой коммит) dceb9b2] Start the project
13 files changed, 148 insertions(+)
create mode 100644 .env
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 requirements.txt
create mode 100644 runserver.py
create mode 100644 sitefish/__init__.py
create mode 100644 sitefish/main/__init__.py
create mode 100644 sitefish/main/views.py
create mode 100644 sitefish/static/images/favicon.ico
create mode 100644 sitefish/static/js/index.js
create mode 100644 sitefish/templates/main/about.html
create mode 100644 sitefish/templates/main/contacts.html
create mode 100644 sitefish/templates/main/index.html
В этом выхлопе перечень всего, что уже добавлено в commit. Обращаю внимание, что не все вложенные каталоги из корневого каталога sitefish попали в этот перечень. Git не обрабатывает пустые вложенные каталоги, и поэтому, например, каталог css
из каталога static
в этот коммит не вошёл, в этом каталоге пусто. Обращаю на это внимание.
Публикуем проект в сеть
Для Git сегодня есть целый ряд публичных серверов, на которых можно опубликовать свой проект. Традиционно для этого разрабы используют github.com
. На этом сайте нужно зарегистрироваться и авторизоваться. После авторизации нужно соответствующим образом настроить свой аккаунт, как минимум, добавить в профиль SSH-ключ.
Замечание: пару ключей ssh в Debian можно создать с помощью команды ssh-keygen, в профиль на github.com
нужно скопировать только публичный ключ, подробнее об этом я расскажу в одном из следующих выпусков этого блога.
У меня уже есть настроенный профиль в этом сервисе, поэтому просто создаю новый репозиторий с именем sitefish. Сайт в итоге даст чёткий список инструкций, как в этот репозиторий подключить локальную ветку, расположенную на моём компьютере. Вот как набор этих инструкций выглядит на сайте.
Возвращаюсь в свой терминал и последовательно выполняю преложенные сервисом команды. Создаю удалённую ветку с именем origin
и предложенным сервисом адресом.
$ git remote add origin git@github.com:jazz4web/sitefish.git
Назначаю главной ветке репозитория имя main
.
$ git branch -M main
И "запушиваю" текущую локальную ветку на сервер Git.
$ git push -u origin main
При выполнении этой команды git в интерактивном режиме запросит пароль используемого ключа. При вводе пароля терминал его не показывает. Если пароль введён правильно, и ключ актуален, все доступные Git коммиты будут скопированы на Git-сервер. Вот как выглядит мой терминал в результате выполнения этой команды.
Всё, цель этой демонстрации полностью достигнута, и теперь у sitefish есть Git-репозиторий.
Продолжение следует
На следующем этапе разработки sitefish поговорим о макете сайта и установим в проект необходимые библиотеки для frontend приложения.
Вопросы, если таковые возникают после прочтения этой статьи, можно задать мне напрямую в комментариях или приватно.