Як здавати дз

Як здавати домашнє завдання

За допомогою пулл-реквесту на GitHub :)

План

  1. Що має бути в репозиторії?
  2. Чого не повинно бути в репозиторії?
  3. Що таке віртуальне середовище (оточення)?
  4. Що за файл requirements.txt?
  5. Як створити проект і репозиторій
  6. Як робити домашку
  7. Що робити, якщо я вже внесено файли 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, якщо його де неме

  1. Увійти\зареєструватися на GitHub
  2. Згеренувати ssh ключ (як - тут), детальіше про ключ тут
ssh-keygen -t ed25519 -C "your_email@example.com"
  1. Додати зміст публічного ssh ключа id_rsa.pub у GitHub

Створення проекту

  1. Створити приватний репозиторій на GitHub

  2. Заповнити поля, опціонально можна обрати .gitignore для Python

  3. Перейти на компʼютері у папку з проетами та склонувати собі проект за домомогою команди 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. Перейти в папку проекту
    Опціонально:
    1
    . Djnago: cтворити проект за допомогою команд консолі
    2*. Створити файл requirements.txt
    3*. Створити та заповнити .gitignore
  2. Закоммітити все що у вас є у свіжому проекті і запушити.
  3. Додати мене в колаборатори репозиторію. Нік на гітхабі - ArtemKonshyn

Як робити домашку

  1. Переконатися, що зараз знаходитесь на гілці main (master)
git status
  1. Бажано підтягнути зміни
git pull
  1. Зробити гілку з main, у назві якої буде інформація про те, що це домашня робота і її номер, наприклад hw_3
git checkout -b <branch_name>
  1. Виконати домашню роботу :)
    Рекомендується комітити зміни після будь-якого значимого блоку. Додали кнопку - коміт. Створили робочий урл - коміт, ітд.
  2. Виконати git push цієї гілки на віддалений репозиторій.
  3. Створити Pull request із гілки з вашої домашньої роботи на main
  4. Додати мене в розділ Reviewers.
  5. Написати викладачу в телеграм і кинути лінку на Pull request, вказати номер групи і призвище та імʼя
  6. Дочекатися апруву або коментарів, що потрібно змінити
    • Якщо отримали коментарі про необхідність змін, зміни додаємо на гілку домашньої роботи після чого виконуємо git push, Pull requestсам оновиться, написати викладачу
  7. Після того як отримали апрув, мержимо зміни в main.

Що робити, якщо вже внесено файли __pycache__ .idea на git?

У цьому випадку вам треба видалити файли з git, але зберегти їх на локальній версії.
Для цього необхідно виконати команду:

git rm <file/folder> --cached

Для кожного файлу або папки.
Після чого виконати commit і push знову.