====== 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 це можна робити за допомогою окремого розділу "Система керування версіями" \\