Верстаем статический web-сайт с помощью Python3x, конфигурация Git

Jazz

Опубликован:  2024-02-01T03:35:14.000253Z
Отредактирован:  2024-02-01T03:35:14.000253Z
Статус:  публичный
10
0
0

Продолжаем разрабатывать 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

Вот как выглядит выхлоп этой команды в моём терминале.

eBcL2nNa1b.png

Перед тем, как создавать новый 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. Сайт в итоге даст чёткий список инструкций, как в этот репозиторий подключить локальную ветку, расположенную на моём компьютере. Вот как набор этих инструкций выглядит на сайте.

KEfF8yOX09.png

Возвращаюсь в свой терминал и последовательно выполняю преложенные сервисом команды. Создаю удалённую ветку с именем 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-сервер. Вот как выглядит мой терминал в результате выполнения этой команды.

wbIwOwcRbL.png

Всё, цель этой демонстрации полностью достигнута, и теперь у sitefish есть Git-репозиторий.

Продолжение следует

На следующем этапе разработки sitefish поговорим о макете сайта и установим в проект необходимые библиотеки для frontend приложения.

Вопросы, если таковые возникают после прочтения этой статьи, можно задать мне напрямую в комментариях или приватно.