Життя програміста – це не тільки сидіння наодинці в темній кімнаті, яка освітлюється лише світлом монітора. Це ще й спілкування з іншими програмістами, соціальна участь в різних спільнотах. Ось чому з’явилися на світ і стали популярними такі речі як Git та Github.
Git – це програмне забезпечення для контролю версій, яке робить співпрацю з колегами по команді дуже простим. Простим, як тільки ви пройдете початкову стадію навчання. І сьогоднішня стаття призначена для початківців, які хочуть дізнатися про основи роботи з Git і Github.
Git – це програмне забезпечення для контролю версій. Він був створений Лінус Торвальдсом (хлопцем, який винайшов Linux). Вам не потрібно використовувати Linux, щоб використання git – він також працює на Windows і Mac.
Git дозволяє вам відстежувати кожну ревізію (зміну), яку ви і ваша команда робите під час розробки програмного забезпечення. Ви всі використовуєте один репозиторій коду, який працює незалежно, а потім об’єднується. Вам також не потрібно постійно підключатися до сховища, тому що проект зберігається і локально на кожній машині, і віддалено (як варіант, на Github).
Git є особливим (і в значній мірі обов’язковим), тому що ви можете повернутися до будь-якої попередньої версії вашого коду, перейти на іншу гілку і розробити певну функцію, не зачіпаючи що-небудь або кого-небудь ще, і виключити можливість пошкодження даних через їх розподіл.
Він також забезпечує легко реалізоване шифрування, а також асинхронні, нелінійні робочі процеси, тому незалежно від того, де ви знаходитесь, ви можете працювати з потрібними розділами вашого проекту.
Коли ви вперше починаєте використовувати git, він може вас налякати. Команди та концепції можуть здатися зовсім чужими, якщо в минулому ви ніколи не використовували будь-яку платформу контролю версій. Тому, давайте коротко розглянемо основні терміни Git.
Репозиторій (repository)
Часто згадується як репо. Репозиторій – це колекція файлів і папок, які ви використовуєте для відстеження git. Сховище складається з усієї історії змін вашої команди в проекті. Це той великий склад, на якому зберігається код, який додали ви і ваша команда.
Github
Найпопулярніше віддалене сховище для git-репозиторіїв. Особливості: він дозволяє вам встановлювати права доступу до проектів, відстежувати і відправляти помилки, приймати запити на поліпшення, підписуватися на повідомлення сховища, використовувати графічний інтерфейс, а не командний рядок. Репо за замовчуванням відкриті, але платні акаунти можуть мати приватні репозиторії.
Фіксація (commit)
Думайте про це як про збереження вашої роботи. Коли ви фіксуєте репозиторій, це схоже на те, що ви збираєте файли в тому вигляді, в якому вони існують в даний момент, і поміщаєте їх в капсулу часу. Фіксація буде існувати тільки на вашому локальному комп’ютері, поки вона не буде відправлена на віддалений репозиторій.
Відправлення (push)
Фіксація поміщає ваші файли в капсулу часу, а відправка – це те, що запускає капсулу в космос. Відправлення – це, по суті, синхронізація ваших збережень (фіксацій, коммітів) з хмарою (знову ж таки, ймовірно, Github). Ви також можете використовувати кілька коммітів одночасно. Ви можете працювати в автономному режимі, зробити багато роботи, а потім передати все це на Github.
Гілка (branch)
Уявіть свій git-репо у вигляді дереві. Стовбур дерева, програмне забезпечення, яке запускається, називається майстер-гілкою (Master Branch). Це те, що є онлайн. Гілки цього дерева називаються, як не дивно, гілками. Це окремі екземпляри коду, який відрізняється від основної бази коду. Ви можете відгалузити одну функцію або експериментальний патч. Розгалужуючись, ви можете зберегти цілісність основного програмного забезпечення і мати можливість відкотитися, якщо зробите щось зовсім божевільне. Це також дозволяє вам працювати над своїм завданням, не впливаючи на вашу команду (або вона на вас).
Об’єднання (merge)
Коли гілка виправлена, не містить помилок (наскільки ви принаймні можете судити) і готова стати частиною первинної бази коду, вона буде об’єднана з головною гілкою. Об’єднання – це те, на що це схоже: злиття двох гілок. Будь-який новий або оновлений код стане офіційною частиною кодової бази. Той, хто відгалужується від точки злиття, також буде мати цей код в своїй гілці.
Клонування (clone)
Клонування репо – це майже те ж саме, як і звучить. Воно бере весь онлайн-репозиторій і робить точну копію на вашому локальному комп’ютері. Вам потрібно буде зробити це по ряду причин, і не в останню чергу для збереження сумісності.
Відгалуження (fork)
Форкінг багато в чому схожий на клонування, тільки замість того, щоб робити копію існуючого репо на вашому локальному комп’ютері, ви отримуєте абсолютно новий репо цього коду під своїм власним ім’ям. Ця функція в основному використовується для взяття існуючої кодової бази і перехід з нею в абсолютно новому напрямку, що часто трапляється в програмному забезпеченні з відкритим вихідним кодом; розробники бачать базову ідею, яка працює, але хочуть піти іншим шляхом. Форкінг дозволяє цьому статися. Ви також можете взяти участь в репозиторії іншого розробника, як у своїй особистій пісочниці. І якщо ви робите щось, що, на вашу думку, може йому сподобатися, ви можете зробити попередній запит на об’єднання.
Запит на підтвердження (Pull Request)
Запит на підтвердження – це коли ви відправляєте запит з внесеними вами змінами (або в гілці, або в відгалуженні), які повинні бути перенесені (або об’єднані) в основну гілку (Master Branch) сховища. Це великий час, і тут відбувається диво. Якщо запит на підтвердження буде схвалений, ви офіційно внесете свій внесок в програмне забезпечення, і Github завжди буде показувати, що саме ви зробили. Однак, якщо запит відхиляється з якої-небудь причини, ревізор зможе дати відгук про те, чому запит був відхилений і що ви можете зробити, щоб він був прийнятий.
Тепер, коли у вас є більш чітке уявлення про те, що таке git, прийшов час покопатися глибше і забруднити руки.
В даному уроці ми припускаємо, що ви використовуєте командний рядок для взаємодії з git. Звичайно, для цього є і git-клієнти з графічним інтерфейсом (і Github навіть дозволяє вам робити практично все через свій веб-інтерфейс), але тут ми це розглядати не будемо. Основи роботи з терміналом або командним рядком описані тут.
На щастя, встановити git дуже просто, незалежно від того, чи працюєте ви на Linux, Mac або Windows.
Для Linux відкрийте термінал і введіть команду sudo apt-get install git-all
(якщо ви перебуваєте в Ubuntu).
У Windows все просто. Ви завантажуєте інсталятор і запускаєте його.
На Mac вам просто потрібно відкрити термінал і набрати git
. Якщо git не встановлено, ви побачите пропозицію встановити його. Натисніть кнопку Встановити, і все готово.
Бачите? Все дуже просто!
Тут починається найцікавіше. Тепер, коли у вас встановлений git, прийшов час трохи покопатися і навчитися використовувати його. А з чого краще почати, якщо не з Github?
Тому зайдіть і зареєструйте свою новий обліковий запис на Github (або зареєструйтесь, якщо він у вас вже є).
Github безкоштовний для публічних репозиторіїв, але ви можете мати приватні (тільки за гроші). В основному безкоштовний варіант на Github підходить для більшості людей. Але деяким клієнтам і роботодавцям потрібна конфіденційність і безпека, тому добре мати й такий варіант.
Після реєстрації ви можете налаштувати свій перший репозиторій! Після того, як ви підтвердите свою електронну пошту і всіх цих кумедних речей.
Спочатку вам потрібно налаштувати сховище в Github. Ви можете зробити це на своєму комп’ютері, а потім завантажити його, але простіше спочатку зробити це в Інтернеті. Натисніть кнопку Створити новий репозиторій (Create a new repository) або ж Почати проект (Start a project) на сайті.
Заповніть форму і натисніть кнопку Створити репозиторій (Create repository).
Тепер, коли репозиторій існує на Github, прийшов час перенести його на локальний комп’ютер за допомогою клонування. Праворуч від вашого репо, трохи вище списку файлів, ви побачите зелену кнопку з написом Клонувати або завантажити (Clone or Download). Натисніть на неї, і ви побачите можливі варіанти завантаження: Відкрити на комп’ютері (якщо ви вже встановили git або GitHub Desktop), а також Завантажити ZIP. Виберіть потрібний варіант.
По-перше, вам потрібно налаштувати те, де ви хочете, щоб ваш репо жив на локальному комп’ютері. Відкрийте термінал.
Перша команда, яку вам потрібно вивчити, це ls
. Вона покаже перелік всього в поточному каталозі.
Для простоти створіть нову папку dev на будь-якому диску на комп’ютері. Ви можете використовувати команду mkdir dev
, щоб створити каталог з ім’ям dev.
Потім перейдіть в новий каталог за допомогою команди cd dev
, яка є командою для зміни поточного каталогу. Якщо вам потрібно повернутися в попередній каталог, просто використовуйте команду cd ..
(дві крапки).
Коли ви будете в щойно створеній папці, настав час попрацювати.
Почніть з копіювання URL-адреси, яка з’являється після натискання зеленої кнопки Клонувати або завантажити на Github. Ця адреса буде виглядати приблизно так: https://github.com/SebWeo/test.git
Команди для клонування Git-сховища з Github
git clone https://github.com/SebWeo/test.git ls cd firstrepo – або як ви назвали свій репо ls
Після цього ваш термінал повинен показати файл README, який ви налаштували на Github. Вітаємо! Ви скористалися Git перший раз, і тепер ви готові почати розробку.
Тепер, коли у вас є репо на вашій машині, вам потрібно навчитися ним користуватися. Отже, давайте перенесемося трохи вперед в часі і скажемо, що ви деякий час працювали над класним проектом і у вас є кілька файлів в каталозі. Прийшов час зафіксувати і відправити їх на Github.
git status
– ця команда покаже вам, які файли не були додані в список для наступної фіксації. У більшості термінальних додатків не додані/додані файли будуть червоного/зеленого кольору відповідно.git add .
– додавши крапку в кінці команди, ви говорите git включити все в каталозі. Якщо ви хочете додати один файл, просто використовуйте його ім’я замість крапки.git commit -m "коротке повідомлення"
– коли ви фіксуєте ці файли, ви також повинні залишити коротке повідомлення (замітку), щоб ваші колеги по команді точно знали, що було в цьому комміті. Стандартні угоди git кажуть, що ви повинні бути якомога більш короткими і конкретними і починати повідомлення, використовуючи даний час дієслова. Ці нотатки видно на Github в переліку файлів.
Використовуйте наступні команди:
git status
– ви завжди повинні перевіряти, як все виглядає, і переконатися, що ви перебуваєте на правильній гілці.git push
Ви можете зайти в свій обліковий запис Github і перевірити репо, і ваші файли будуть там, включаючи короткі повідомлення!
Останні дві команди, з якими ви повинні бути знайомі, пов’язані з розгалуженням і злиттям. Як ми вже говорили вище, робота над гілкою зберігає основну кодову базу в безпеці, і, як тільки ваші зміни виявляться корисними, ви можете об’єднати їх усі разом.
Ось приклади команд:
git checkout -b "branch1"
– ця команда створить нову гілку (з ім’ям branch1), і перемкне вас на неї як на робочу гілку. Ця команда об’єднує команди git checkout
і git branch
в один зручний рядок коду.touch some.html
– це проста команда створення нового HTML-файлу.git status
git add some.html
git commit -m "create some.html"
git status
– знову переконайтеся, що все гаразд.
Ви можете переключитися назад на основну гілку за допомогою команди git checkout master
(на цей раз без checkout -b
).
git status
– як завжди.git merge branch1
– оскільки все в цій гілці в порядку, ми можемо йти далі і зайнятися об’єднанням.git push
– команда для синхронізації.
Перевірте свій обліковий запис Github – ви побачите, що все, що ви зробили, відображається там. Ви можете побачити різні повідомлення: кількість гілок і коммітів, які ви зробили, а також всіх учасників (contributor) репо і того, що вони зробили.
От і все! Вітаємо! Ви щойно на практиці створили свій репозиторій і дізналися основні моменти робочого процесу. З git ви можете робити набагато більше заплутаних речей, ніж розглянуті, але вони досить близькі до того, що ви, ймовірно, будете використовувати щодня.
Дякуємо, що читаєте нас!
Сьогоднішній огляд присвячений людям, для яких важливе питання конфіденційності в Інтернеті, та хто цінує свої…
Вперше про бренд Pro Plan почули у 1986 році, коли він став частиною американської компанії…
Страх покарання гірше самого покарання (Покарання — завжди щось конкретне, і воно все ж краще,…
Якщо ви плануєте розмістити веб-сайт в мережі Інтернет, дуже важливо знайти для нього швидкий і…
Навчання за кордоном вже давно асоціюється з якісною освітою, новими можливостями та безліччю перспектив. Але…
Вибір майстра для ремонту та перетяжки меблів – завдання, яке потребує вдумливого підходу. Адже від…