Контроль версій, також відомий як керування вихідним кодом, - це практика відстеження змін програмного коду та керування ними.
Програмне забезпечення контролю версій відстежує всі зміни, що вносяться в код, у спеціальній базі даних. При виявленні помилки розробники можуть повернутися назад і виконати порівняння з попередніми версіями коду для виправлення помилок, зводячи до мінімуму проблеми для всіх учасників команди.
Системи контролю версій – це програмні інструменти, які допомагають командам розробників керувати змінами у вихідному коді з часом. У світлі ускладнення середовищ розробки вони допомагають командам розробників працювати швидше та ефективніше.
Принцип роботи систем контролю версій заключається в тому, що проект зберігається на окремому сервері, а всі учасники команди мають змогу брати його із сервера, модифікувати та завантажувати на сервер оновлену версію.

⚠ корисне джерело інформації ⚠
- Що таке контроль версій?
- What is version control?
- Офіційна документація/книга з Git
- Гарний підручник з основ Git
⚠ корисне джерело інформації ⚠























GitHub – це веб-платформа для хостингу та спільної розробки програмного забезпечення з використанням системи контролю версій Git.
GitHub є однією з найпопулярніших і найвпливовіших платформ для розробників, і він широко використовується для спільної роботи над проектами різного масштабу.



⚠ корисне джерело інформації ⚠













У терміналі VSCode налаштовуємо аутентифікацію на GitHub.
Для цього вводимо ІМ'Я (Arslan3325528) та ПОШТУ (3325528@ukr.net), виконавши дві команди:
git config --global user.name Arslan3325528
git config --global user.email 3325528@ukr.net
Якщо створити файл .gitignore в своєму репозиторії, Git використовує його, щоб визначити, які файли і каталоги (або цілі шаблони) ігнорувати, перш ніж здійснювати commit.
Зазвичай він використовується, щоб уникнути передачі тимчасових файлів з вашого робочого каталогу, файли налаштувань проекту, створені середовищем розробки і тощо.
Приклад запису файлу .gitignore:
# Ігнор-лист файлів проекту # Ігнорувати всі файли і директорії, включаючи піддиректорії і файли в них * # ---- ФАЙЛИ ---- # Ігнорування по типу файлу, будуть ігноруватися в АБСОЛЮТНО всіх директоріях # Наприклад /files/data.zip, /server.log, /uploads/users/data/info.xls *.zip *.log *.pdf *.xls # Ігнорування файлу у ВСІХ директоріях # Наприклад /params/db/config.php, /config.php config.php # Ігнорування конкретного файлу ТІЛЬКИ в корені проекту # (корнем вважається розташування файлу .gitignore) # Наприклад НЕ БУДЕ проігнорований файл /db/config.php /config.php # Ігнорування конкретного файлу ТІЛЬКИ у вказаній директорії # Наприклад НЕ БУДЕ проігнорований файл /prod/params/config.php /params/config.php # ---- Директорії ---- # Ігнорування всіх файлів і папок ТІЛЬКИ в конкретної директорії (включаючи піддиректорії і файли в них) # Наприклад /images/user.jpg, /images/company/logo.png # НЕ БУДУТЬ проігноровані файли і папки /prod/images/user.jpg /images/* # Ігнорування всіх файлів і папок в будь-яких директоріях з вказаним ім'ям # Наприклад /images/user.jpg, /core/images/user.jpg images/* # Ігнорування ВСІХ html-файлів ОДНІЄЇ ПЕВНОЇ директорії (НЕ ВКЛЮЧАЮЧИ піддиректорії) # Наприклад /private/index.html # НЕ БУДУТЬ проігноровані файли в /private/ivan/index.html /private/*.html # Ігнорування ВСІХ html-файлів в КОНКРЕТНОЮ директорії ТОМУ ЧИСЛІ піддиректорії # Наприклад /private/info.html, /private/users/ivan/info.html /private/**/*.html # ---- РІЗНЕ ---- # Виняток з ігнорування # Ігнорування ВСІХ файлів і папок всередині директорії /secret, # за винятком файлу /secret/free.txt, він не буде проігнорований /secret/* !/secret/free.txt # Ігнорування файлу з ім'ям, що містить спеціальні символи # Наприклад !readme!.txt \!readme!.txt # Ігнорування всіх JPG і JPEG файлів всередині директорій, # які починаються на "h" і МОЖУТЬ містити ще один символ після # Наприклад /images/h4/user.jpg, /images/h/company.jpeg /images/h?/*.jp?g



⚠ корисне джерело інформації ⚠




























Відкриваємо клонований репозиторій у VSCode та вносимо зміни:






Синтаксис команд | Опис команд |
---|---|
git init |
Ініціалізує створення локального репозиторію в поточній папці. Створюється прихована папка .git у якій зберігається службова інформація про локальний репозиторій. |
git status |
Перевіряє наявність змін у стані файлів проекту з моменту останнього коміту. За умови наявності змін виведе в консоль інформацію про файли, в яких є зміни. |
git add [file-name чи .] |
Щоб повідомити Git про необхідність почати відстежувати зміни, внесені у файл, спочатку треба додати їх у staging area, використовуючи git add. При використанні git add . Крапка означає додавання усіх змін |
git commit -m "коментар" |
Створює зліпок поточного стану файлів, які під контролем версій. Кожен commit треба описувати коротким, змістовним коментарем про внесені зміни. Кількість комітів необмежена. Отже, якщо нам колись потрібно буде повернутися до минулої версії проекту, ми зможемо "відкотити" його до певного коміту. |
git clone [params] |
Клонує віддалений репозиторій на комп’ютер, автоматично зв’язує його з локальною версією. |
git reset [filename] |
Використовується для видалення файлу з-під контролю версій. |
git log |
Виводить журнал змін у репозиторії як список усіх комітів, які були зроблені в хронологічному порядку. |
git push |
Надсилає усі збережені в комітах зміни з локального репозиторію на віддалений. При виконанні git push -u origin master, прапорець -u вказує Git запам'ятати куди ми пушимо (на віддалений репозиторій, origin, у гілку master). Після цього достатньо буде виконувати git push. |
git pull |
Забирає останні зміни з віддаленого репозиторію в локальний, якщо вони зв’язані. |
git remote add origin [repo-url] |
Пов’язує віддалений репозиторій з локальним по url. Потрібно, щоб існував віддалений репозиторій. Після виконання команди, можна буде пушити зміни на віддалений репозиторій. |
⚠ корисне джерело інформації ⚠
- Використання Git-команд за допомогою терміналу
- Гарний підручник з основ Git-команд
- Інтерактивна платформа по роботі з Git-командами - Learn Git Branching
- Завантажити шпаргалку по Git-командам











⚠ корисне джерело інформації ⚠ ...а також, приклад того, які посилання треба відправити у ДЗ-6: ☟
Запушити зроблений код зарахованих проектів WebStudio та Photoblog в окремі репозиторії на GitHub. Для кожного проекту створити свій репозиторій з відповідними назвами: webstudio та photoblog.
Скопіювати такі посилання:
1. Посилання на репозиторій з кодом проекту.
2. Посилання на деплой github-pages цього проекту («живу» сторінку проекту).
Надати цю пару посилань з кожним проектом (WebStudio та Photoblog), та прикріпити у ДЗ в LMS.
Тобто, в LMS потрібно надіслати чотири посилання!
Приклад пари посилань надановище ☟