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