You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/uk/1-getting-started-lessons/2-github-basics/README.md

66 KiB

Вступ до GitHub

Привіт, майбутній розробнику! 👋 Готовий приєднатися до мільйонів кодерів по всьому світу? Я щиро радий представити тобі GitHub уяви це як соціальну мережу для програмістів, але замість фотографій обіду ми ділимося кодом і створюємо неймовірні речі разом!

Ось що мене вражає: кожен додаток на твоєму телефоні, кожен вебсайт, який ти відвідуєш, і більшість інструментів, які ти навчишся використовувати, були створені командами розробників, які співпрацювали на платформах, таких як GitHub. Той музичний додаток, який ти любиш? Хтось, як ти, зробив свій внесок у його створення. Та гра, від якої ти не можеш відірватися? Так, ймовірно, була створена за допомогою співпраці на GitHub. А тепер ТИ навчишся бути частиною цієї дивовижної спільноти!

Я знаю, що спочатку це може здатися складним чесно кажучи, я пам'ятаю, як дивився на свою першу сторінку GitHub і думав: "Що це все означає?" Але ось у чому справа: кожен розробник починав саме там, де ти зараз. До кінця цього уроку ти матимеш власний репозиторій на GitHub (уяви це як свою персональну вітрину проектів у хмарі), і ти знатимеш, як зберігати свою роботу, ділитися нею з іншими та навіть робити внесок у проекти, якими користуються мільйони людей.

Ми пройдемо цей шлях разом, крок за кроком. Без поспіху, без тиску лише ти, я і кілька крутих інструментів, які стануть твоїми новими найкращими друзями!

Вступ до GitHub

Скетчноут від Tomomi Imura

journey
    title Your GitHub Adventure Today
    section Setup
      Install Git: 4: You
      Create Account: 5: You
      First Repository: 5: You
    section Master Git
      Local Changes: 4: You
      Commits & Pushes: 5: You
      Branching: 4: You
    section Collaborate
      Fork Projects: 4: You
      Pull Requests: 5: You
      Open Source: 5: You

Передлекційна вікторина

Передлекційна вікторина

Вступ

Перш ніж ми перейдемо до справді захоплюючих речей, давай підготуємо твій комп'ютер до магії GitHub! Уяви це як організацію своїх художніх матеріалів перед створенням шедевру наявність правильних інструментів робить усе набагато простішим і значно веселішим.

Я особисто проведу тебе через кожен крок налаштування, і обіцяю, це не так страшно, як може здатися на перший погляд. Якщо щось не зрозуміло одразу, це абсолютно нормально! Я пам'ятаю, як налаштовував своє перше середовище розробки і відчував, ніби намагаюся читати стародавні ієрогліфи. Кожен розробник був саме там, де ти зараз, і думав, чи все він робить правильно. Спойлер: якщо ти тут і навчаєшся, ти вже робиш усе правильно! 🌟

У цьому уроці ми розглянемо:

  • відстеження роботи, яку ти виконуєш на своєму комп'ютері
  • роботу над проектами з іншими
  • як робити внесок у програмне забезпечення з відкритим кодом

Попередні вимоги

Давай підготуємо твій комп'ютер до магії GitHub! Не хвилюйся це налаштування потрібно зробити лише один раз, і тоді ти будеш готовий до всієї своєї подорожі в програмуванні.

Добре, почнемо з основи! Спочатку нам потрібно перевірити, чи Git вже встановлений на твоєму комп'ютері. Git це як суперрозумний асистент, який запам'ятовує кожну зміну, яку ти робиш у своєму коді набагато краще, ніж постійно натискати Ctrl+S кожні дві секунди (ми всі там були!).

Давай перевіримо, чи Git вже встановлений, ввівши цю магічну команду в терміналі: git --version

Якщо Git ще не встановлений, не хвилюйся! Просто зайди на завантаження Git і завантаж його. Після встановлення нам потрібно правильно представити тебе Git:

💡 Перше налаштування: Ці команди повідомляють Git, хто ти. Ця інформація буде прикріплена до кожного коміту, який ти робиш, тому вибери ім'я та електронну адресу, які ти готовий публічно ділитися.

git config --global user.name "your-name"
git config --global user.email "your-email"

Щоб перевірити, чи Git вже налаштований, ти можеш ввести:

git config --list

Тобі також знадобиться обліковий запис GitHub, редактор коду (наприклад, Visual Studio Code), і потрібно буде відкрити термінал (або командний рядок).

Перейди на github.com і створи обліковий запис, якщо ти ще цього не зробив, або увійди і заповни свій профіль.

💡 Сучасна порада: Розглянь можливість налаштування SSH ключів або використання GitHub CLI для зручнішої аутентифікації без паролів.

GitHub не єдиний репозиторій коду у світі; є й інші, але GitHub найвідоміший.

Підготовка

Тобі знадобиться папка з проектом коду на твоєму локальному комп'ютері (ноутбуці або ПК) і публічний репозиторій на GitHub, який буде служити прикладом того, як робити внесок у проекти інших.

Збереження твого коду в безпеці

Давай поговоримо про безпеку на хвилинку але не хвилюйся, ми не будемо перевантажувати тебе страшними речами! Уяви ці практики безпеки як замикання машини або будинку. Це прості звички, які стають природними і захищають твою важливу роботу.

Ми покажемо тобі сучасні, безпечні способи роботи з GitHub прямо з самого початку. Таким чином, ти розвинеш хороші звички, які будуть служити тобі протягом усієї кар'єри програміста.

Коли працюєш з GitHub, важливо дотримуватися найкращих практик безпеки:

Область безпеки Найкраща практика Чому це важливо
Аутентифікація Використовуй SSH ключі або персональні токени доступу Паролі менш безпечні і поступово відходять
Двофакторна аутентифікація Увімкни 2FA у своєму обліковому записі GitHub Додає додатковий рівень захисту облікового запису
Безпека репозиторію Ніколи не коміть конфіденційну інформацію API ключі та паролі не повинні бути у публічних репозиторіях
Управління залежностями Увімкни Dependabot для оновлень Забезпечує безпеку та актуальність твоїх залежностей

⚠️ Критичне нагадування про безпеку: Ніколи не коміть API ключі, паролі або іншу конфіденційну інформацію в будь-який репозиторій. Використовуй змінні середовища та файли .gitignore для захисту конфіденційних даних.

Сучасне налаштування аутентифікації:

# Generate SSH key (modern ed25519 algorithm)
ssh-keygen -t ed25519 -C "your_email@example.com"

# Set up Git to use SSH
git remote set-url origin git@github.com:username/repository.git

💡 Порада професіонала: SSH ключі усувають необхідність постійного введення паролів і є більш безпечними, ніж традиційні методи аутентифікації.


Управління кодом як професіонал

Окей, ОЦЕ те, де все стає справді захоплюючим! 🎉 Ми збираємося навчитися відстежувати і управляти твоїм кодом, як це роблять професіонали, і чесно кажучи, це одна з моїх улюблених тем для навчання, тому що це справжній переворот.

Уяви це: ти пишеш дивовижну історію і хочеш зберігати кожен чернетку, кожне блискуче редагування і кожен момент "оце так геніально!" на шляху. Саме це Git робить для твого коду! Це як мати неймовірний блокнот, що подорожує у часі і запам'ятовує ВСЕ кожен натиск клавіші, кожну зміну, кожен момент "ой, це все зламало", який ти можеш миттєво скасувати.

Чесно кажучи, спочатку це може здатися складним. Коли я починав, я думав: "Чому я просто не можу зберігати свої файли, як зазвичай?" Але повір мені: як тільки Git стане зрозумілим (а це станеться!), ти матимеш той момент осяяння, коли подумаєш: "Як я взагалі міг програмувати без цього?" Це як відкрити, що ти можеш літати, коли все життя ходив пішки!

Уявімо, що у тебе є папка локально з якимось проектом коду, і ти хочеш почати відстежувати свій прогрес за допомогою git системи контролю версій. Дехто порівнює використання git із написанням любовного листа до свого майбутнього "я". Читаючи свої повідомлення комітів через дні, тижні чи місяці, ти зможеш згадати, чому прийняв те чи інше рішення, або "відкотити" зміну тобто, якщо ти пишеш хороші "повідомлення комітів".

flowchart TD
    A[📁 Your Project Files] --> B{Is it a Git Repository?}
    B -->|No| C[git init]
    B -->|Yes| D[Make Changes]
    C --> D
    D --> E[git add .]
    E --> F["git commit -m 'message'"]
    F --> G[git push]
    G --> H[🌟 Code on GitHub!]
    
    H --> I{Want to collaborate?}
    I -->|Yes| J[Fork & Clone]
    I -->|No| D
    J --> K[Create Branch]
    K --> L[Make Changes]
    L --> M[Pull Request]
    M --> N[🎉 Contributing!]
    
    style A fill:#fff59d
    style H fill:#c8e6c9
    style N fill:#ff4081,color:#fff

Завдання: Створи свій перший репозиторій!

🎯 Твоя місія (і я так радий за тебе!): Ми разом створимо твій перший репозиторій на GitHub! До кінця цього уроку ти матимеш свій власний куточок в інтернеті, де буде зберігатися твій код, і ти зробиш свій перший "коміт" (це розробницька мова для збереження твоєї роботи дуже розумним способом).

Це справді особливий момент ти офіційно приєднуєшся до глобальної спільноти розробників! Я досі пам'ятаю хвилювання від створення свого першого репозиторію і думки: "Вау, я справді це роблю!"

Давай пройдемо цей шлях разом, крок за кроком. Не поспішай з кожною частиною тут немає призу за швидкість, і я обіцяю, кожен крок буде зрозумілим. Пам'ятай, кожна зірка програмування, яку ти захоплюєшся, колись сиділа саме там, де ти зараз, готуючись створити свій перший репозиторій. Як це круто?

Переглянь відео

Відео про основи Git і GitHub

Давай зробимо це разом:

  1. Створи свій репозиторій на GitHub. Перейди на GitHub.com і знайди яскраву зелену кнопку New (або знак + у верхньому правому куті). Натисни її і вибери New repository.

    Ось що потрібно зробити:

    1. Дай своєму репозиторію назву зроби її значущою для себе!
    2. Додай опис, якщо хочеш (це допоможе іншим зрозуміти, про що твій проект)
    3. Виріши, чи хочеш зробити його публічним (усі можуть його бачити) чи приватним (лише для тебе)
    4. Рекомендую поставити галочку, щоб додати файл README це як титульна сторінка твого проекту
    5. Натисни Create repository і святкуй ти щойно створив свій перший репозиторій! 🎉
  2. Перейди до папки свого проекту. Тепер відкрий свій термінал (не хвилюйся, він не такий страшний, як виглядає!). Нам потрібно сказати твоєму комп'ютеру, де знаходяться файли твого проекту. Введи цю команду:

    cd [name of your folder]
    

    Що ми тут робимо:

    • Ми фактично кажемо "Гей, комп'ютере, відведи мене до папки мого проекту"
    • Це як відкриття конкретної папки на робочому столі, але ми робимо це текстовими командами
    • Замінити [name of your folder] на фактичну назву папки твого проекту
  3. Перетвори свою папку на Git репозиторій. Ось де відбувається магія! Введи:

    git init
    

    Ось що щойно сталося (доволі круто!):

    • Git щойно створив приховану папку .git у твоєму проекті ти її не побачиш, але вона там!
    • Твоя звичайна папка тепер "репозиторій", який може відстежувати кожну зміну, яку ти робиш
    • Уяви це як надання твоїй папці суперсил, щоб запам'ятовувати все
  4. Перевір, що відбувається. Давай подивимося, що Git думає про твій проект зараз:

    git status
    

    Розуміння того, що каже Git:

    Ти можеш побачити щось схоже на це:

    Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
    
         modified:   file.txt
         modified:   file2.txt
    

    Не панікуй! Ось що це означає:

    • Файли в червоному це файли, які мають зміни, але ще не готові до збереження
    • Файли в зеленому (коли ти їх побачиш) готові до збереження
    • Git допомагає, показуючи тобі, що ти можеш зробити далі

    💡 Порада професіонала: Команда git status твій найкращий друг! Використовуй її щоразу, коли ти не впевнений, що відбувається. Це як запитати Git: "Гей, яка зараз ситуація?"

  5. Підготуй свої файли до збереження (це називається "стейджинг"):

    git add .
    

    Що ми щойно зробили:

    • Ми сказали Git: "Гей, я хочу включити ВСІ мої файли в наступне збереження"
    • . це як сказати "все в цій папці"
    • Тепер твої файли "стейджовані" і готові до наступного кроку

    Хочеш бути більш вибірковим? Ти можеш додати лише конкретні файли:

    git add [file or folder name]
    

    Чому ти можеш захотіти це зробити?

    • Іноді ти хочеш зберігати пов'язані зміни разом
    • Це допомагає організувати твою роботу в логічні частини
    • Полегшує розуміння того, що змінилося і коли

    Передумав? Не хвилюйся! Ти можеш зняти файли зі стейджингу ось так:

    # Unstage everything
    git reset
    
    # Unstage just one file
    git reset [file name]
    

    Не хвилюйся це не видаляє твою роботу, це просто прибирає файли з "готових до збереження".

  6. Збережи свою роботу назавжди (зроби свій перший коміт!):

    git commit -m "first commit"
    

    🎉 Вітаю! Ти щойно зробив свій перший коміт!

    Ось що щойно сталося:

    • Git зробив "знімок" усіх твоїх стейджованих файлів у цей конкретний момент
    • Твоє повідомлення коміту "first commit" пояснює, про що цей момент збереження
    • Git дав цьому знімку унікальний ID, щоб ти Що ми щойно зробили:
  • Ми створили зв’язок між вашим локальним проєктом і репозиторією на GitHub.
  • "Origin" це просто псевдонім для вашої репозиторії на GitHub, як додавання контакту до вашого телефону.
  • Тепер ваш локальний Git знає, куди надсилати ваш код, коли ви готові ним поділитися.

💡 Простіший спосіб: Якщо у вас встановлений GitHub CLI, ви можете зробити це однією командою:

gh repo create my-repo --public --push --source=.
  1. Надішліть ваш код на GitHub (великий момент!):

    git push -u origin main
    

🚀 Це воно! Ви завантажуєте ваш код на GitHub!

Що відбувається:

  • Ваші коміти подорожують з вашого комп’ютера на GitHub.
  • Прапорець -u встановлює постійний зв’язок, щоб майбутні push були простішими.
  • "main" це назва вашої основної гілки (як головна папка).
  • Після цього ви можете просто вводити git push для майбутніх завантажень!

💡 Швидка примітка: Якщо ваша гілка називається інакше (наприклад, "master"), використовуйте цю назву. Ви можете перевірити це командою git branch --show-current.

  1. Ваш новий щоденний ритм кодування (ось де це стає захоплюючим!):

Відтепер, коли ви вносите зміни до вашого проєкту, у вас є цей простий трьохетапний процес:

git add .
git commit -m "describe what you changed"
git push

Це стає вашим серцем кодування:

  • Внесіть круті зміни до вашого коду
  • Додайте їх командою git add ("Гей, Git, зверни увагу на ці зміни!")
  • Збережіть їх командою git commit з описовим повідомленням (майбутній ви буде вдячний!)
  • Поділіться ними зі світом за допомогою git push 🚀
  • Повторюйте серйозно, це стає таким природним, як дихання!

Мені подобається цей робочий процес, тому що це як мати кілька точок збереження в відеогрі. Зробили зміни, які вам подобаються? Збережіть їх! Хочете спробувати щось ризиковане? Без проблем ви завжди можете повернутися до останнього коміту, якщо щось піде не так!

💡 Порада: Можливо, вам також варто використовувати файл .gitignore, щоб запобігти появі файлів, які ви не хочете відстежувати, на GitHub наприклад, файл з нотатками, який ви зберігаєте в тій самій папці, але він не має місця в публічній репозиторії. Ви можете знайти шаблони для файлів .gitignore на .gitignore templates або створити один за допомогою gitignore.io.

🧠 Перша перевірка репозиторії: Як це було?

Зробіть паузу, щоб відсвяткувати і подумати:

  • Як це було побачити ваш код на GitHub вперше?
  • Який крок був найбільш заплутаним, а який виявився несподівано легким?
  • Чи можете ви пояснити різницю між git add, git commit і git push своїми словами?
stateDiagram-v2
    [*] --> LocalFiles: Create project
    LocalFiles --> Staged: git add .
    Staged --> Committed: git commit
    Committed --> GitHub: git push
    GitHub --> [*]: Success! 🎉
    
    note right of Staged
        Files ready to save
    end note
    
    note right of Committed
        Snapshot created
    end note

Пам’ятайте: Навіть досвідчені розробники іноді забувають точні команди. Щоб цей робочий процес став автоматичним, потрібна практика ви чудово справляєтеся!

Сучасні робочі процеси Git

Розгляньте можливість впровадження цих сучасних практик:

  • Conventional Commits: Використовуйте стандартизований формат повідомлень комітів, як-от feat:, fix:, docs: тощо. Дізнайтеся більше на conventionalcommits.org
  • Атомарні коміти: Нехай кожен коміт представляє одну логічну зміну.
  • Часті коміти: Робіть коміти часто з описовими повідомленнями, а не рідко і великими.

Повідомлення комітів

Чудовий заголовок повідомлення коміту завершує наступне речення: Якщо застосувати, цей коміт <ваш заголовок тут>

Для заголовка використовуйте наказовий теперішній час: "змінити", а не "змінено" чи "зміни". Як і в заголовку, у тілі (за бажанням) також використовуйте наказовий теперішній час. Тіло має включати мотивацію для зміни та порівняти це з попередньою поведінкою. Ви пояснюєте чому, а не як.

Приділіть кілька хвилин, щоб переглянути GitHub. Чи можете ви знайти справді чудове повідомлення коміту? Чи можете знайти дуже мінімальне? Яка інформація, на вашу думку, є найважливішою і корисною для передачі в повідомленні коміту?

Співпраця з іншими (найцікавіша частина!)

Приготуйтеся, тому що ОСЬ де GitHub стає абсолютно магічним! 🪄 Ви освоїли управління власним кодом, але тепер ми занурюємося в мою абсолютну улюблену частину співпрацю з дивовижними людьми з усього світу.

Уявіть це: ви прокидаєтеся завтра і бачите, що хтось у Токіо покращив ваш код, поки ви спали. Потім хтось у Берліні виправляє баг, над яким ви застрягли. До обіду розробник у Сан-Паулу додає функцію, про яку ви навіть не думали. Це не наукова фантастика це просто вівторок у всесвіті GitHub!

Що мене справді захоплює, так це те, що навички співпраці, які ви зараз освоюєте? Це ТОЧНО ті самі робочі процеси, які команди в Google, Microsoft і ваших улюблених стартапах використовують щодня. Ви не просто вивчаєте крутий інструмент ви вивчаєте секретну мову, яка дозволяє всьому світу програмного забезпечення працювати разом.

Серйозно, як тільки ви відчуєте захват від того, що хтось об’єднав ваш перший pull request, ви зрозумієте, чому розробники так захоплюються відкритим кодом. Це як бути частиною найбільшого, найкреативнішого командного проєкту у світі!

Перегляньте відео

Відео основи Git і GitHub

Основна причина розміщення речей на GitHub це зробити можливим співпрацю з іншими розробниками.

flowchart LR
    A[🔍 Find Project] --> B[🍴 Fork Repository]
    B --> C[📥 Clone to Local]
    C --> D[🌿 Create Branch]
    D --> E[✏️ Make Changes]
    E --> F[💾 Commit Changes]
    F --> G[📤 Push Branch]
    G --> H[🔄 Create Pull Request]
    H --> I{Maintainer Review}
    I -->|✅ Approved| J[🎉 Merge!]
    I -->|❓ Changes Requested| K[📝 Make Updates]
    K --> F
    J --> L[🧹 Clean Up Branches]
    
    style A fill:#e3f2fd
    style J fill:#e8f5e8
    style L fill:#fff3e0

У вашій репозиторії перейдіть до Insights > Community, щоб побачити, як ваш проєкт порівнюється з рекомендованими стандартами спільноти.

Хочете зробити вашу репозиторію професійною та привітною? Перейдіть до вашої репозиторії та натисніть на Insights > Community. Ця крута функція показує, як ваш проєкт порівнюється з тим, що спільнота GitHub вважає "хорошими практиками репозиторії".

🎯 Зробіть ваш проєкт блискучим: Добре організована репозиторія з якісною документацією це як чистий, привітний магазин. Це показує людям, що вам важлива ваша робота, і змушує інших хотіти зробити свій внесок!

Ось що робить репозиторію чудовою:

Що додати Чому це важливо Що це дає вам
Опис Перше враження має значення! Люди миттєво розуміють, що робить ваш проєкт
README Головна сторінка вашого проєкту Як дружній гід для нових відвідувачів
Інструкції для внеску Показує, що ви відкриті до допомоги Люди знають, як саме вони можуть допомогти вам
Кодекс поведінки Створює дружню атмосферу Усі почуваються привітно
Ліцензія Юридична ясність Інші знають, як вони можуть використовувати ваш код
Політика безпеки Показує вашу відповідальність Демонструє професійні практики

💡 Професійна порада: GitHub надає шаблони для всіх цих файлів. Під час створення нової репозиторії поставте галочки, щоб автоматично згенерувати ці файли.

Сучасні функції GitHub для дослідження:

🤖 Автоматизація та CI/CD:

  • GitHub Actions для автоматичного тестування та розгортання
  • Dependabot для автоматичного оновлення залежностей

💬 Спільнота та управління проєктами:

  • GitHub Discussions для обговорень спільноти поза межами проблем
  • GitHub Projects для управління проєктами у стилі канбан
  • Правила захисту гілок для забезпечення стандартів якості коду

Усі ці ресурси будуть корисними для адаптації нових членів команди. І саме на такі речі нові учасники звертають увагу перед тим, як навіть подивитися на ваш код, щоб зрозуміти, чи є ваш проєкт правильним місцем для їхнього часу.

Файли README, хоча їх створення займає час, часто ігноруються зайнятими кураторами. Чи можете ви знайти приклад особливо описового README? Примітка: існують інструменти для створення хороших README, які вам можуть сподобатися.

Завдання: Об’єднайте трохи коду

Документація для внесків допомагає людям зробити внесок у проєкт. Вона пояснює, які типи внесків вас цікавлять і як працює процес. Учасники повинні пройти серію кроків, щоб мати змогу внести свій внесок у вашу репозиторію на GitHub:

  1. Форк вашої репозиторії. Ви, ймовірно, захочете, щоб люди форкали ваш проєкт. Форк означає створення копії вашої репозиторії у їхньому профілі на GitHub.
  2. Клонування. Звідти вони клонують проєкт на свій локальний комп’ютер.
  3. Створення гілки. Ви захочете попросити їх створити гілку для своєї роботи.
  4. Зосередження змін на одній області. Попросіть учасників зосередити свої внески на одній речі за раз таким чином шанси, що ви зможете об’єднати їхню роботу, вищі. Уявіть, що вони виправляють баг, додають нову функцію і оновлюють кілька тестів що, якщо ви хочете або можете впровадити лише 2 з 3, або 1 з 3 змін?

Уявіть ситуацію, коли гілки особливо важливі для написання та доставки якісного коду. Які випадки використання ви можете придумати?

Примітка: будьте зміною, яку хочете бачити у світі, і створюйте гілки для своєї власної роботи також. Усі коміти, які ви робите, будуть зроблені в гілці, до якої ви зараз "перемкнуті". Використовуйте git status, щоб побачити, яка це гілка.

Давайте пройдемо робочий процес учасника. Припустимо, учасник вже форкав і клонував репозиторію, тому у нього є готовий Git-репозиторій на локальному комп’ютері:

  1. Створення гілки. Використовуйте команду git branch, щоб створити гілку, яка міститиме зміни, які вони мають намір внести:

    git branch [branch-name]
    

    💡 Сучасний підхід: Ви також можете створити і перемкнутися на нову гілку однією командою:

    git switch -c [branch-name]
    
  2. Перемикання на робочу гілку. Перемкніться на зазначену гілку і оновіть робочий каталог за допомогою git switch:

    git switch [branch-name]
    

    💡 Сучасна примітка: git switch це сучасна заміна git checkout при зміні гілок. Це зрозуміліше і безпечніше для початківців.

  3. Робота. На цьому етапі ви хочете додати свої зміни. Не забудьте повідомити Git про це за допомогою наступних команд:

    git add .
    git commit -m "my changes"
    

    ⚠️ Якість повідомлення коміту: Переконайтеся, що ви даєте вашому коміту гарну назву, як для себе, так і для куратора репозиторії, над якою ви допомагаєте. Будьте конкретними щодо того, що ви змінили!

  4. Об’єднання вашої роботи з гілкою main. У якийсь момент ви закінчуєте роботу і хочете об’єднати вашу роботу з тією, що є в гілці main. Гілка main могла змінитися тим часом, тому переконайтеся, що спочатку оновлюєте її до останньої версії за допомогою наступних команд:

    git switch main
    git pull
    

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

    git switch [branch_name]
    git merge main
    

    Команда git merge main принесе всі зміни з main у вашу гілку. Сподіваємося, ви можете просто продовжити. Якщо ні, VS Code покаже вам, де Git заплутався, і ви просто змінюєте відповідні файли, щоб вказати, який контент є найбільш точним.

    💡 Сучасна альтернатива: Розгляньте використання git rebase для чистішої історії:

    git rebase main
    

    Це відтворює ваші коміти поверх останньої гілки main, створюючи лінійну історію.

  5. Надішліть вашу роботу на GitHub. Надсилання вашої роботи на GitHub означає дві речі. Завантаження вашої гілки у вашу репозиторію і відкриття PR, Pull Request.

    git push --set-upstream origin [branch-name]
    

    Наведена вище команда створює гілку у вашій форкованій репозиторії.

🤝 Перевірка навичок співпраці: Готові працювати з іншими?

Давайте перевіримо, як ви почуваєтеся щодо співпраці:

  • Чи має сенс для вас ідея форків і pull request?
  • Що саме про роботу з гілками ви хочете практикувати більше?
  • Наскільки комфортно ви почуваєтеся, вносячи внесок у чужий проєкт?
mindmap
  root((Git Collaboration))
    Branching
      Feature branches
      Bug fix branches
      Experimental work
    Pull Requests
      Code review
      Discussion
      Testing
    Best Practices
      Clear commit messages
      Small focused changes
      Good documentation

Підсилювач впевненості: Кожен розробник, яким ви захоплюєтеся, колись нервував через свій перший pull request. Спільнота GitHub надзвичайно привітна до новачків!

  1. Відкрийте PR. Далі ви хочете відкрити PR. Ви робите це, перейшовши до форкованої репозиторії на GitHub. Ви побачите індикацію на GitHub, де вас запитають, чи хочете ви створити новий PR, ви натискаєте це, і вас перенесуть до інтерфейсу, де ви можете змінити заголовок повідомлення коміту, дати йому більш відповідний опис. Тепер куратор репозитор

  2. Прибирання. Вважається гарною практикою прибирати після успішного об'єднання PR. Вам потрібно очистити як локальну гілку, так і гілку, яку ви завантажили на GitHub. Спочатку видаліть її локально за допомогою наступної команди:

    git branch -d [branch-name]
    

    Переконайтеся, що ви перейшли на сторінку GitHub для форкованого репозиторію і видалили віддалену гілку, яку ви щойно завантажили.

Pull request здається дивним терміном, адже насправді ви хочете завантажити свої зміни в проект. Але власник проекту або основна команда повинні розглянути ваші зміни перед тим, як об'єднати їх з "головною" гілкою проекту, тому ви фактично запитуєте рішення про зміну у власника.

Pull request — це місце для порівняння та обговорення змін, внесених у гілку, з рецензіями, коментарями, інтегрованими тестами тощо. Хороший pull request дотримується приблизно тих самих правил, що й повідомлення про коміт. Ви можете додати посилання на проблему в трекері проблем, якщо ваша робота, наприклад, вирішує проблему. Це робиться за допомогою #, після якого йде номер вашої проблеми. Наприклад, #97.

🤞Тримаємо кулаки, щоб усі перевірки пройшли успішно, і власник(и) проекту об'єднали ваші зміни в проект🤞

Оновіть вашу поточну локальну робочу гілку всіма новими комітами з відповідної віддаленої гілки на GitHub:

git pull

Внесок у Open Source (Ваш шанс зробити вплив!)

Готові до чогось, що абсолютно переверне ваш світ? 🤯 Давайте поговоримо про внесок у проекти з відкритим кодом і мене аж мурашки беруть від думки про те, щоб поділитися цим з вами!

Це ваш шанс стати частиною чогось справді неймовірного. Уявіть, що ви покращуєте інструменти, якими щодня користуються мільйони розробників, або виправляєте помилку в додатку, який обожнюють ваші друзі. Це не просто мрія це те, про що йдеться у внеску в open source!

Ось що мене завжди вражає: кожен інструмент, з яким ви навчалися ваш редактор коду, фреймворки, які ми досліджуємо, навіть браузер, у якому ви це читаєте почався з когось, хто зробив свій перший внесок. Той геніальний розробник, який створив ваш улюблений розширення для VS Code? Колись він був новачком, який натискав "створити pull request" з тремтячими руками, так само, як ви зараз.

І ось найкраща частина: спільнота open source це як найбільше групове обіймання в інтернеті. Більшість проектів активно шукають новачків і мають проблеми з тегом "good first issue", спеціально для таких, як ви! Власники проектів щиро радіють, коли бачать нових учасників, адже вони пам'ятають свої перші кроки.

flowchart TD
    A[🔍 Explore GitHub] --> B[🏷️ Find "good first issue"]
    B --> C[📖 Read Contributing Guidelines]
    C --> D[🍴 Fork Repository]
    D --> E[💻 Set Up Local Environment]
    E --> F[🌿 Create Feature Branch]
    F --> G[✨ Make Your Contribution]
    G --> H[🧪 Test Your Changes]
    H --> I[📝 Write Clear Commit]
    I --> J[📤 Push & Create PR]
    J --> K[💬 Engage with Feedback]
    K --> L[🎉 Merged! You're a Contributor!]
    L --> M[🌟 Find Next Issue]
    
    style A fill:#e1f5fe
    style L fill:#c8e6c9
    style M fill:#fff59d

Ви не просто вчитеся програмувати ви готуєтеся приєднатися до глобальної родини творців, які щодня прокидаються з думкою "Як ми можемо зробити цифровий світ трохи кращим?" Ласкаво просимо до клубу! 🌟

Спочатку знайдіть репозиторій (або repo) на GitHub, який вас цікавить і до якого ви хочете внести зміни. Вам потрібно скопіювати його вміст на свій комп'ютер.

Хороший спосіб знайти репозиторії для новачків шукати за тегом 'good-first-issue'.

Скопіювати репозиторій локально

Існує кілька способів копіювання коду. Один із них "клонувати" вміст репозиторію, використовуючи HTTPS, SSH або GitHub CLI (Command Line Interface).

Відкрийте термінал і клонуйте репозиторій таким чином:

# Using HTTPS
git clone https://github.com/ProjectURL

# Using SSH (requires SSH key setup)
git clone git@github.com:username/repository.git

# Using GitHub CLI
gh repo clone username/repository

Щоб працювати над проектом, перейдіть до потрібної папки: cd ProjectURL

Ви також можете відкрити весь проект за допомогою:

  • GitHub Codespaces - Хмарне середовище розробки GitHub з VS Code у браузері
  • GitHub Desktop - Графічний додаток для операцій Git
  • GitHub.dev - Натисніть клавішу . на будь-якому репозиторії GitHub, щоб відкрити VS Code у браузері
  • VS Code з розширенням GitHub Pull Requests

Нарешті, ви можете завантажити код у вигляді архівованої папки.

Кілька цікавих фактів про GitHub

Ви можете додати зірку, спостерігати або "форкнути" будь-який публічний репозиторій на GitHub. Ви можете знайти свої зіркові репозиторії у випадаючому меню у верхньому правому куті. Це як закладки, але для коду.

Проекти мають трекер проблем, здебільшого на GitHub у вкладці "Issues", якщо не зазначено інше, де люди обговорюють проблеми, пов'язані з проектом. А вкладка Pull Requests це місце, де люди обговорюють і переглядають зміни, які перебувають у процесі.

Проекти також можуть мати обговорення у форумах, списках розсилки або чат-каналах, таких як Slack, Discord або IRC.

🔧 Сучасні функції GitHub:

  • GitHub Discussions - Вбудований форум для спільнотних обговорень
  • GitHub Sponsors - Фінансова підтримка власників проектів
  • Security tab - Звіти про вразливості та рекомендації щодо безпеки
  • Actions tab - Автоматизовані робочі процеси та CI/CD конвеєри
  • Insights tab - Аналітика про учасників, коміти та стан проекту
  • Projects tab - Вбудовані інструменти управління проектами GitHub

Ознайомтеся з вашим новим репозиторієм на GitHub і спробуйте кілька речей, таких як редагування налаштувань, додавання інформації до вашого репозиторію, створення проекту (наприклад, дошки Kanban) та налаштування GitHub Actions для автоматизації. Тут є багато чого зробити!


🚀 Виклик

Гаразд, настав час перевірити ваші нові суперздібності GitHub! 🚀 Ось виклик, який допоможе вам зрозуміти все на практиці:

Знайдіть друга (або того члена сім'ї, який завжди питає, чим ви займаєтеся з усім цим "комп'ютерним матеріалом") і вирушайте разом у спільну пригоду з програмуванням! Тут відбувається справжня магія створіть проект, нехай ваш друг форкне його, створіть кілька гілок і об'єднайте зміни, як справжні професіонали.

Не буду приховувати ви, ймовірно, будете сміятися (особливо коли обидва спробуєте змінити один і той самий рядок), можливо, почухаєте голову від здивування, але точно матимете ті неймовірні моменти "ага!", які роблять все навчання вартим. Крім того, є щось особливе в тому, щоб поділитися першим успішним об'єднанням з кимось іншим це як маленьке святкування того, як далеко ви зайшли!

Ще не маєте друга для програмування? Не хвилюйтеся! Спільнота GitHub наповнена неймовірно привітними людьми, які пам'ятають, як це бути новачком. Шукайте репозиторії з мітками "good first issue" вони фактично кажуть "Гей, новачки, приходьте вчитися з нами!" Як це круто?

Післялекційний тест

Післялекційний тест

Огляд і продовження навчання

Ух! 🎉 Подивіться на себе ви щойно освоїли основи GitHub як справжній чемпіон! Якщо ваш мозок зараз трохи перевантажений, це абсолютно нормально і, чесно кажучи, хороший знак. Ви щойно освоїли інструменти, які мені знадобилося кілька тижнів, щоб відчути себе комфортно.

Git і GitHub неймовірно потужні (серйозно потужні), і кожен розробник, якого я знаю включаючи тих, хто зараз здається чарівником мав практикуватися і трохи плутатися, перш ніж усе стало зрозумілим. Те, що ви пройшли цей урок, означає, що ви вже на шляху до освоєння одних із найважливіших інструментів у наборі розробника.

Ось кілька абсолютно фантастичних ресурсів, які допоможуть вам практикуватися і стати ще крутішими:

І пам'ятайте: практика робить прогрес, а не досконалість! Чим більше ви використовуєте Git і GitHub, тим природніше це стає. GitHub створив кілька чудових інтерактивних курсів, які дозволяють вам практикуватися в безпечному середовищі:

Відчуваєте себе авантюрно? Ознайомтеся з цими сучасними інструментами:

Виклик GitHub Copilot Agent 🚀

Використовуйте режим Agent, щоб виконати наступний виклик:

Опис: Створіть спільний проект веб-розробки, який демонструє повний робочий процес GitHub, який ви вивчили на цьому уроці. Цей виклик допоможе вам практикувати створення репозиторію, функції співпраці та сучасні робочі процеси Git у реальному сценарії.

Завдання: Створіть новий публічний репозиторій GitHub для простого проекту "Ресурси веб-розробки". Репозиторій повинен містити добре структурований файл README.md зі списком корисних інструментів і ресурсів для веб-розробки, організованих за категоріями (HTML, CSS, JavaScript тощо). Налаштуйте репозиторій відповідно до стандартів спільноти, включаючи ліцензію, рекомендації щодо внеску та кодекс поведінки. Створіть щонайменше дві функціональні гілки: одну для додавання ресурсів CSS, а іншу для ресурсів JavaScript. Зробіть коміти до кожної гілки з описовими повідомленнями про коміт, а потім створіть pull requests для об'єднання змін назад у main. Увімкніть функції GitHub, такі як Issues, Discussions, і налаштуйте базовий робочий процес GitHub Actions для автоматизованих перевірок.

Завдання

Ваша місія, якщо ви вирішите її прийняти: Пройдіть курс Вступ до GitHub на GitHub Skills. Цей інтерактивний курс дозволить вам практикувати все, що ви вивчили, у безпечному, керованому середовищі. Крім того, ви отримаєте крутий значок після завершення! 🏅

Готові до нових викликів?

  • Налаштуйте SSH-аутентифікацію для вашого облікового запису GitHub (більше ніяких паролів!)
  • Спробуйте використовувати GitHub CLI для щоденних операцій з Git
  • Створіть репозиторій з робочим процесом GitHub Actions
  • Досліджуйте GitHub Codespaces, відкривши цей самий репозиторій у хмарному редакторі

🚀 Ваш графік освоєння GitHub

Що ви можете зробити за наступні 5 хвилин

  • Додайте зірку цьому репозиторію та ще 3 проектам, які вас цікавлять
  • Налаштуйте двофакторну аутентифікацію для вашого облікового запису GitHub
  • Створіть простий README для вашого першого репозиторію
  • Підпишіться на 5 розробників, чия робота вас надихає

🎯 Що ви можете досягти за годину

  • Пройдіть післялекційний тест і подумайте про ваш шлях у GitHub
  • Налаштуйте SSH-ключі для аутентифікації в GitHub без паролів
  • Зробіть ваш перший значущий коміт з чудовим повідомленням
  • Досліджуйте вкладку "Explore" на GitHub, щоб знайти популярні проекти
  • Практикуйте форк репозиторію та внесіть невеликі зміни

📅 Ваш тижневий GitHub-пригода

  • Пройдіть курси GitHub Skills (Вступ до GitHub, Markdown)
  • Зробіть ваш перший pull request до проекту з відкритим кодом
  • Налаштуйте сайт GitHub Pages, щоб показати вашу роботу
  • Приєднайтеся до обговорень GitHub у проектах, які вас цікавлять
  • Створіть репозиторій з належними стандартами спільноти (README, Ліцензія тощо)
  • Спробуйте GitHub Codespaces для хмарної розробки

🌟 Ваш місячний трансформаційний шлях

  • Внесіть зміни до 3 різних проектів з відкритим кодом
  • Станьте наставником для когось нового в GitHub (передайте знання!)
  • Налаштуйте автоматизовані робочі процеси з GitHub Actions
  • Створіть портфоліо, яке демонструє ваші внески в GitHub
  • Візьміть участь у Hacktoberfest або подібних спільнотних заходах
  • Станьте власником вашого власного проекту, до якого інші будуть вносити зміни

🎓 Фінальна перевірка освоєння GitHub

Відсвяткуйте, як далеко ви зайшли:

  • Що вам найбільше подобається в використанні GitHub?
  • Яка функція співпраці вас найбільше захоплює?
  • Наскільки впевнено ви почуваєтеся щодо внеску в open source зараз?
  • Який перший проект, до якого ви хочете внести зміни?
journey
    title Your GitHub Confidence Journey
    section Today
      Nervous: 3: You
      Curious: 4: You
      Excited: 5: You
    section This Week
      Practicing: 4: You
      Contributing: 5: You
      Connecting: 5: You
    section Next Month
      Collaborating: 5: You
      Leading: 5: You
      Inspiring Others: 5: You

🌍 Ласкаво просимо до глобальної спільноти розробників! Тепер у вас є інструменти для співпраці з мільйонами розробників по всьому світу. Ваш перший внесок може здатися маленьким, але пам'ятайте - кожен великий проект з відкритим кодом починався з того, що хтось


Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.