🔧 Git і GitHub - Частина 1: Опанування контролю версій як професіонал
Привіт, друзі! 👋 Сьогодні ми занурюємося в тему, яка Заснування Для кожного розробника — Git і GitHub. Чи ви пишете код самостійно, чи співпрацюєте з командою, важливо розуміти, як ефективно керувати та ділитися кодом. Тож давайте розберемо це крок за кроком.
🧠 Що таке система контролю версій (VCS)?
Почнемо з простого. A Система контролю версій це як Машина часу Для вашого коду. Він дозволяє вам:
- Зміни траси — подивитися, хто що змінив і коли.
- Співпрацюйте — кілька розробників можуть працювати над одним проєктом без хаосу.
🪢 Дві основні цілі VCS:
- Спільне використання — Розробники можуть отримувати доступ і працювати над одним і тим самим проєктом.
- Версування — Кожна зміна зберігається, і ви можете повернутися до попередніх версій, якщо потрібно.
🏢 Централізований проти розподіленого контролю версій
Існує два типи VCS:
🏛 Централізований VCS (як CVS, SVN):
- Весь код працює на Центральний сервер.
- Розробники повинні бути онлайн і підключені д�� центрального сервера, щоб вносити зміни.
- Приклад у реальному житті: Як редагування спільного Google Doc — потрібен інтернет і доступ до оригінального файлу.
🧳 Розподілений VCS (як Git):
- У кожного є Повна копія репозиторію.
- Можна працювати офлайн, вносити зміни, а потім синхронізувати (Штовх/тягни) з іншими пізніше.
- Приклад у реальному житті: Уявіть, що кожен товариш по команді має локальну копію спільного документа, а зміни об'єднуються пізніше.
🧱 Git проти GitHub – у чому різниця?
Хоча Git і GitHub часто використовуються разом, це Не те саме. Розглянемо основні відмінності:
1. Що це?
- Геть є Інструмент контролю версій Це допомагає відстежувати та керувати змінами у вашому коді.
- GitHub є Хмарна платформа за хостинг і співпрацю над репозиторіями Git.
2. Тип ліцензії
- Геть повністю Відкритий код і безкоштовний у використанні.
- GitHub є Власність, але вільний для публічних репозиторіїв. Також пропонується платні плани для приватних та розширених функцій.
3. Мета
- Геть допомагає тобі Керуйте версіями вашого проєкту локально — комміт, гілка, злиття, відкат тощо.
- GitHub дозволяє тобі Співпрацюйте, Код перегляду, Відкриті випуски, та Прогрес траєкторії з будь-якого місця через інтернет.
4. Інтерфейс і робочий процес
- Геть є Командний рядок З такими командами, як git init, git commit, git push.
- GitHub забезпечує веб-орієнтований графічний інтерфейс, де можна відкрити Pull requests, коментар, відстеження Проблеми, і перегляньте код.
Якщо ви працюєте самостійно за комп'ютером, Git — це достатньо. Але при роботі з командою або дистанційному обміні кодом вам знадобиться GitHub (або GitLab, Bitbucket тощо.) як платформа.
Геть — це двигун. GitHub це гараж, де ви зберігаєте і співпрацюєте над цим рушієм.
💻 Налаштування Git
Спочатку завантажте Git звідси. Це безкоштовно і працює на різних платформах.
🚀 Почнемо з проєкту
✅ git init
Ця команда ініціалізує порожній репозиторій Git.
Приклад:
Рекомендовано LinkedIn
mkdir my-project
cd my-project
git init
Тепер створюється прихована папка .git — це Серце Репозиторію.
🔍 Що всередині .git?
Коли ви запускаєте git init, у вашому проєкті створюється прихована папка .git. Це мозок Git — він містить усю інформацію, необхідну Git для відстеження історії вашого проєкту.
Ось що всередині:
.git/
├── objects/ # Stores content of files (commits, trees, blobs, etc.)
├── refs/ # References to branches and tags
├── hooks/ # Scripts to automate workflows (like pre-commit checks)
├── config # Configuration file (user info, remote URLs, etc.)
├── HEAD # Points to the current branch (like a bookmark)
📂 Ближчий погляд:
- Об'єкти/ Де Git зберігає всі фактичні дані — вміст ваших файлів, коміти та дерева. Це як база даних вашого проєкту.
- Посилання/ Зберігає посилання на коміти: гілки (Refs/heads/) та теги (Посилання/теги/).
- Гачки/ Ви можете писати власні скрипти, які автоматично запускаються в певних моментах — наприклад, перед затвердженням коду (До комміту), або після поштовху (Після Push).
- конфігурація Локальна конфігурація Git. Ви можете налаштовувати інформацію про користувача, пульти, редактор тощо. Приклад:
- ГОЛОВА Вказує на наразі вилучену гілку. Уявіть це як гілку, на якій ви «сидите». Приклад:
Аналогія з реальним світом: .git — це як чорна скринька літака. Він знає все, що відбувається з вашим кодом.
📜 git log — Переглянути історію
Використовуйте це, щоб побачити всі коміти у вашому репозиторі:
git log
Кожен запис показує:
- Ідентифікатор коміта
- Автор
- Дата
- Повідомлення про фіксацію
Припустимо, ваш поточний проєкт має баги. Ви хочете повернутися до старішої, стабільної версії.
git reset --hard 4f3c8e7
Увага: Ось це видаляє всі зміни Після цього комміту використовуйте його обережно.
☁️ Обмін кодом з GitHub
- Створити обліковий запис на GitHub (Вільний!)
- Натисніть «Новий репозиторій» → назвіть → натисніть «Створити репозиторій»
- GitHub покаже вам, як підключити ваш локальний проєкт до нього.
🔗 Приклад робочого процесу (Підключіть локальний Git до GitHub)
git remote add origin https://github.com/yourusername/your-repo.git
git branch -M main
git push -u origin main
Тепер ваш проєкт доступний на GitHub! 🎉
🔁 Резюме команд Git
1. git init Ініціалізує новий репозиторій Git у вашій папці проєкту. Він створює прихований каталог .git/ для початку відстеження версій.
2. git log Відображає Історія коммітів у вашому репозиторії — включно з автором, датою та повідомленням коміту. Корисно для відстеження змін і розуміння еволюції проєктів.
5. git push Завантажує ваш Місцеві коміти до віддалений репозиторій GitHub. Зазвичай використовується з git push origin main, щоб надіслати основний код філії онлайн.
🧩 Реальний випадок використання
Уявіть, що ви працюєте над командним проєктом. Одна людина додає нову функцію, інша виправляє баг. З Git і GitHub ви можете працювати незалежно, об'єднувати зміни і завжди знати, хто що зробив — і все це, зберігаючи стабільність проєкту та резервну копію.
Зустрінемось у наступній частині з детальнішою інформацією...