====== Git: Основи ======
==== ====
Інформація по роботі з git в рамках роботи з github, vs code та проектом.
==== Ініціалізація проєкта (git init / clone) ====
Якщо ви ще не розпочали роботу з новим проєктом локально, його потрібно ініціювати. Для цього виконуємо:
git init
Ця команда створює локальний "репозиторій" (папку ''.git''), де Git буде відслідковувати всі твої зміни.
=== Підключення до віддаленого репозиторію (HTTPS) ===
Зараз твій локальний репозиторій нічого не знає про GitHub. Тобі треба "прив'язати" його до URL.
git remote add origin https://github.com/osvex/ansible
''git remote add'' ** - ** Команда "додати віддалений репозиторій".
''origin'' ** -** Це просто псевдонім (стандартна назва) для твого URL. Замість того, щоб щоразу писати повний URL, ти будеш писати ''origin''.
''[[https://.|https://.]]..'': Твоє посилання.
=== Підключення до віддаленого репозиторію (SSH) (Рекомендовано) ===
Щоб клонувати репозиторій виконуємо наступну команду:
git clone git@github.com:USER/REPO_NAME.git dirname_project
Наприклад:
git clone git@github.com:osvex/ansible.git ansible
**Важливо**: Повинен бути налаштований SSH ключ між Git та сервером/ноутом. [[:devops:git:github_sshkeys#доступ_до_репозиторію_deploy_key|Детальніше]]
Щоб перевірити, що все спрацювало, виконай:
git remote -v
Ти маєш побачити, що твій ''origin'' тепер вказує на правильну адресу.
==== Завантаження змін з git (git pull) ====
Тепер, коли Git "знає" про ''origin'', ти хочеш завантажити звідти файли.
Команда **''git pull'' ** робить дві речі:
-
**Fetch (Завантажити):** Запитує у ''origin'' всі зміни, яких у тебе ще немає.
-
**Merge (Злити):** Намагається "злити" ці зміни у твою поточну гілку.
git pull origin main
*
**''git pull'' **: Команда "завантажити і злити".
*
**''origin'' **: //Звідки// тягнути (з нашого псевдоніма).
*
**''main'' **: //Яку// гілку тягнути. (Можливо, тобі потрібна ''dev'' або інша гілка, просто заміни ''main'').
=== Редагування, Коміт та Пуш (Основний цикл) ===
Це твій щоденний процес. Ти щось змінив і хочеш відправити це на GitHub.
== Перевірка статусу ==
**Найважливіша команда.** Завжди починай з неї, щоб побачити, які файли ти змінив, додав або видалив.
git status
(Ти побачиш список файлів червоним кольором — "modified" або "untracked").
== Додавання файлів (Staging) ==
Ти маєш сказати Git, які саме зі змінених файлів ти хочеш "запакувати" в наступне збереження (коміт).
*
Щоб додати **всі** змінені файли:
git add .
*
Щоб додати тільки **один** конкретний файл:
git add playbook.yml
Після цього ''git status'' покаже ці файли зеленим кольором ("changes to be committed").
=== Коміт (Збереження) ===
Тепер ти "фотографуєш" (зберігаєш) всі "зелені" файли з коментарем. Коміт — це одиниця збереження в історії.
git commit -m "Оновив плейбук, додав нове завдання"
*
**''git commit'' **: Команда "зберегти".
*
**''-m "…"'' **: Прапор "message", який дозволяє одразу написати коментар. Тепер твої зміни збережені **локально** (на твоєму комп'ютері). На GitHub їх ще немає.
==== Пуш (Відправка на GitHub) ====
Ти відправляєш свої локальні коміти на віддалений сервер (''origin'').
git push origin main
*
**''git push'' **: Команда "відправити".
*
**''origin'' **: //Куди// відправляти.
*
**''main'' **: //Яку// гілку відправляти. Git може попросити твій логін і пароль (або токен) від GitHub.
\\ Розділ "Редагування, Коміт та Пуш (Основний цикл)" повинен для роботи в терміналі. У VS Code це можна робити за допомогою окремого розділу "Система керування версіями" \\