Як здавати дз
Як здавати домашнє завдання
За допомогою пулл-реквесту на GitHub :)
План
- Що має бути в репозиторії?
- Чого не повинно бути в репозиторії?
- Що таке віртуальне середовище (оточення)?
- Що за файл requirements.txt?
- Як створити проект і репозиторій
- Як робити домашку
- Що робити, якщо я вже внесено файли pycache або .idea на git?
Що має бути в репозиторії?
- Код проекту
- Файл requirements.txt (якщо знаєте, що таке віртуальне середовище)
Чого не повинно бути в репозиторії?
Якщо коротко, то нічого зайвого.
- Папок
__pycache__і будь-якого його вмісту. - Файлів налаштувань
IDE, наприклад папки.ideaабо аналогів для іншихIDE. - Для MacOS - файлів
.DS_Store - Файлу зі стандартною базою даних,
db.sqlite3.
Усі ці файли та папки мають бути занесені в .gitignore
Що таке віртуальне середовище (оточення)?
Віртуальне середовище Python – це ізольоване цифрове середовище, в якому ви можете встановити свої власні версії Python і пакети, відмінні від тих, які встановлені в системі. Воно створює так звану “пісочницю” для вашого проєкту, де ви можете працювати, не впливаючи на інші проєкти або системні бібліотеки.
Детальніше тут
Створення віртуального оточення
python -m venv myenv
Активація віртуального оточення
– Windows:
myenv\Scripts\activate
– MacOS/Linux:
source myenv/bin/activate
Деактивація віртуального оточення
deactivate
Що за файл requirements.txt?

Файл requirements.txt необхідний для контролю залежностей.
Віртуальне середовище (оточення) слугує саме для того, щоб кілька ваших проектів не могли “заважати” один одному.
Кожне окреме оточення повністю не залежить від інших. Але як інший розробник повинен приєднаються до вашого проекту? Для цього і використовується файл залежностей requirements.txt
Попередньо ми маємо переконатися, що віртуальне середовище активоване, і що ми перебуваємо у корні проекту (для Django - на тому ж самому рівні вкладеності папок, де знаходиться файл manage.py.)
Що б створити такий файл використовується команда:
pip freeze > requirements.txt
Приблизний вміст такого файлу:
asgiref==3.6.0
Django==4.1.5
psycopg2==2.9.5
sqlparse==0.4.3
tzdata==2022.7
Це список усього, що встановлено у вашому віртуальному середовищі.
Як це може використовувати інший розробник?
Після клону вашого проекту і створення свого віртуального оточення достатньо виконати всього одну команду
pip install -r requirements.txt
І отримати повну копію віртуального оточення, з вашими залежностями.
Як створити проект і репозиторій
Робиться один раз, коли нам необхідно створити новий проект
Налаштування доступу по SSH, якщо його де неме
ssh-keygen -t ed25519 -C "your_email@example.com"
- Додати зміст публічного ssh ключа
id_rsa.pubу GitHub
Створення проекту
-
Створити приватний репозиторій на GitHub
-
Заповнити поля, опціонально можна обрати .gitignore для Python
-
Перейти на компʼютері у папку з проетами та склонувати собі проект за домомогою команди git clone через ssh
git clone git@github.com:<repository>.git
Отримаємо таку відповідь, пишемо yes, якщо запитає додати github.com
Cloning into 'homework'...
The authenticity of host 'github.com (140.82.121.4)' can't be established.
ED25519 key fingerprint is SHA256:+D.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), 2.03 KiB | 2.03 MiB/s, done.
- Перейти в папку проекту
Опціонально:
1. Djnago: cтворити проект за допомогою команд консолі
2*. Створити файлrequirements.txt
3*. Створити та заповнити.gitignore - Закоммітити все що у вас є у свіжому проекті і запушити.
- Додати мене в колаборатори репозиторію. Нік на гітхабі - ArtemKonshyn
Як робити домашку
- Переконатися, що зараз знаходитесь на гілці main (master)
git status
- Бажано підтягнути зміни
git pull
- Зробити гілку з
main, у назві якої буде інформація про те, що це домашня робота і її номер, наприкладhw_3
git checkout -b <branch_name>
- Виконати домашню роботу :)
Рекомендується комітити зміни після будь-якого значимого блоку. Додали кнопку - коміт. Створили робочий урл - коміт, ітд. - Виконати
git pushцієї гілки на віддалений репозиторій. - Створити
Pull requestіз гілки з вашої домашньої роботи на main
- Додати мене в розділ Reviewers.
- Написати викладачу в телеграм і кинути лінку на Pull request, вказати номер групи і призвище та імʼя
- Дочекатися апруву або коментарів, що потрібно змінити
- Якщо отримали коментарі про необхідність змін, зміни додаємо на гілку домашньої роботи після чого виконуємо
git push,Pull requestсам оновиться, написати викладачу
- Якщо отримали коментарі про необхідність змін, зміни додаємо на гілку домашньої роботи після чого виконуємо
- Після того як отримали апрув, мержимо зміни в
main.
Що робити, якщо вже внесено файли __pycache__ .idea на git?
У цьому випадку вам треба видалити файли з git, але зберегти їх на локальній версії.
Для цього необхідно виконати команду:
git rm <file/folder> --cached
Для кожного файлу або папки.
Після чого виконати commit і push знову.