Меню Закрити

Знайомство з Git і GitHub: курс молодого бійця

Зображення: Jason Long [CC BY 3.0], via Wikimedia Commons

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

Є багато способів використання Git і GitHub. Ви навіть можете робити найважливіші речі просто на сайті GitHub. Але значно швидше і ефективніше буде працювати через термінал.

Щоразу, коли бачите в тексті команду, яка містить такі позначки: <>, ви маєте їх видаляти й заміняти інформацію на власну.

Припустимо, ви бачите щось схоже на git add <filename>. Це означає, що ви вводите, наприклад: git add hello_world.py — якщо хочете додати файл з ім’ям “hello_world.py” до вашого репозиторія GitHub.

Зареєструйтесь на GitHub та встановіть git

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

Тепер зайдіть у свій термінал і познайомтеся з Git. Щоб встановити ім’я користувача для кожного репозиторія на вашому комп’ютері, введіть:

git config --global user.name "<your_name_here>"

Замініть “<your_name_here>” на власне ім’я в лапках. Ви можете скористатися будь-яким ім’ям або ідентифікатором. Якщо ви хочете встановити своє ім’я лише для одного репозиторія, приберіть слово global.

Тепер можете повідомити Git свій email, але переконайтеся, що це та сама скринька, яку ви зазначили під час реєстрації на GitHub.

git config --global user.email "<[email protected]>"

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

Щоб розпочати роботу, можна створити новий репозиторій на сайті GitHub або скористатися командою git init для створення нового репозиторія з каталогу проекту.

Репозиторій (сховище) складається з трьох «дерев». Перше — це робоча директорія, у якій зберігаються актуальні файли. Друге — індекс. Третє — голова (head), яка вказує на останній коміт, який ви зробили.

Ініціалізація репозиторія

Ось як можна почати роботу прямо з термінала.

Якщо у вас є директорія проекту, просто зайдіть у ваш термінал і в цій директорії запустіть команду:

git init

Якщо ви хочете ініціалізувати ваш проект з усіма файлами у директорії проекту, запустіть:

git init .

Скажімо, у вас є директорія для вашого проекту з назвою new_project. Ви можете перейти прямо до цієї директорії у вікні вашого термінала й додати до неї локальний репозиторій, запустивши:

cd new_project
git init

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

git add <filename_one>

Або запустіть:

git add .

щоб додати в індекс усі файли. Ці зміни можна комітити за допомогою команди:

git commit -m "<add a commit message here>"

І якщо ви задоволені своїми змінами, запустіть:

git push

щоб передати ваші зміни на сервер. Можете перевірити, чи є у вас зміни, щоб передати їх у будь-який час, запустивши:

git status

Якщо ви внесли деякі зміни, можете оновлювати файли одночасно з командою:

git add <filename>

або

git add --all

Потім зафіксуйте їх комітом і передайте на сервер.

Клонування репозиторія

Для того щоб клонувати репозиторій на локальний комп’ютер, перейдіть до репозиторія на веб-сайті GitHub і натисніть велику зелену кнопку з написом Clone or download.

Потім клонуйте репозиторій:

git clone <that_thing_you_just_copied>

Так просто! (Не забудьте змінити інформацію між позначками <> на рядок літер і цифр, який ви щойно скопіювали)

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

Якщо колись захочете побавитися з проектом на своєму комп’ютері, можете форкнути його (розгалужити) на сайті GitHub, а не клонувати. Погляньте у верхній правий кут екрана, де розміщено кнопку fork, та натисніть її. Ви створите копію репозиторія у вашому обліковому записі, щоб можна було експериментувати, не змінюючи оригіналу.

Додавання файлів

Це все, що вам треба зробити:

git status
git add
git commit -m " "
git push

Нема чим перейматися!

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

git status

Щоб додати один із ваших файлів до репозиторія, треба запустити:

git add <fileneame>

В інший спосіб можна додати все з:

git add --all

Або навіть:

git add .

Це ваші запропоновані зміни. Ви можете зробити так само з абсолютно новими та раніше створеними файлами, які зазнали змін. Наразі ви ще нічого не додаєте. Ви просто вносите нові файли та зміни до репозиторія.

Щоб комітити зміни, запустіть процес:

git commit -m “<commit message>”

Ви комітите зміни в HEAD, але не для віддаленого репозиторія. (Переконайтеся, що замінили message в лапках на власну фразу.) Після внесення змін, ви зробите “моментальний знімок” репозиторія з командою commit. Додайте повідомлення про цей “знімок” за допомогою аргумента командного рядка -m.

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

Тепер ваші зміни вгорі локальної робочої копії. Щоб надіслати зміни до вашого віддаленого репозиторія, запустіть:

git push

Якщо працюєте на локальному комп’ютері та хочете, щоб ваші коміти були видимі також онлайн, передавайте зміни за допомогою команди git push.

Можна будь-коли перевірити, чи все оновилося, запустивши команду git status.

Тепер у вас є репозиторій GitHub, і ви знаєте, як до нього додати файли й внести зміни.

Взаємодія з іншими розробниками

Потік GitHub

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

Branch (гілка) — це окремий простір, де можна випробувати нові ідеї. Якщо щось змінити на гілці, це не вплине на іншу гілку, доки не захочете. Це означає: можна робити, що завгодно, на цій гілці, доки не вирішите, що настав час для її об’єднання з іншою.

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

Якщо ви працюєте в команді та хочете вносити власні зміни або працюєте самостійно, але хочете внести зміни, які не зачеплять master, вам треба мати окрему гілку. Ви можете її створити будь-якої миті.

Також досить просто створити гілку під назвою new_feature у вашому терміналі та перейти до неї за допомогою

git checkout -b new_feature

Після створення до цієї гілки можна вносити зміни. Ви бачитимете, що саме змінили й чому. Щоразу, коли комітите зміни, додавайте message — повідомлення, яке можна використовувати для опису зробленого.

Поговоримо про checkout

git checkout

дає змогу перемкнутися на іншу гілку. Ви можете перейти на гілку branch за допомогою:

git checkout master

або перейти на гілку new_feature:

git checkout new_feature

Коли закінчите роботу з гілкою, ви можете об’єднати всі зміни, щоб їх бачили всі.

git merge new_feature

візьме всі зміни, внесені до гілки new_feature, і додасть їх до master.

Для створення віддаленої гілки запустіть:

git push --set-upstream origin new_feature

Після того як внесете зміни та впевнитеся, що вони підходять, відкрийте pull request (запит на підтвердження змін). Це — коли інші люди з вашої команди можуть почати перевіряти ваші зміни та обговорювати їх. Ви можете відкрити запит будь-якої миті, коли потрібно переглянути ваші остаточні зміни або попросити допомоги, якщо на чомусь застрягли.

Оновлення та злиття

Якщо ви працюєте на своєму комп’ютері та хочете мати найсучаснішу версію репозиторія, отримайте зміни з GitHub за допомогою команди git pull.

Щоб об’єднати з вашою активною гілкою іншу, використайте:

git merge <branch_name>

Git спробує автоматично об’єднати зміни, але це не завжди можливо. Можуть виникати конфлікти. Якщо так станеться, потрібно буде вручну об’єднати конфлікти. Після їхньої зміни можна позначити їх як об’єднані за допомогою git add <filename>. Можна переглянути попередні зміни, перш ніж їх об’єднати:

git diff <source_branch> <target_branch>

Можете повернутися до головної гілки:

git checkout master

Ви внесете зміни, а потім вилучите гілку, коли закінчите:

git branch -d new_feature

До цієї гілки не матимуть доступу інші користувачі, якщо ви її не передасте до віддаленого репозиторія:

git push origin <branch>

Інші корисні команди

Ви можете побачити історію комітів репозиторія, якщо запустите:

git log

Також можете побачити коміти іншого учасника:

git log --author = <name>

Так можна побачити, що було змінено:

git diff

Вам потрібна допомога, щоб пригадати, до якої команди слід вдатися? Спробуйте

git help

щоб побачити 21 найпоширенішу команду.

Ви також можете отримати допомогу з конкретної команди, наприклад:

git help clone

надасть інформацію про команду clone.

Що почитати?

Передусім є така шпора – GitHub cheatsheet. Там є всі найбільш корисні команди Git.

Також не слід оминати онлайн-підручник Pro git, який є і в українському перекладі.

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

1+

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: