Основи Git. Github

Основи Git. Github

Ruby 🇺🇦

Сьогодні на уроці:


Що таке Git в двох словах?


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

Основні цілі Git такі:

⦁ Швидкість і ефективність

⦁ Цілісність даних

⦁ Підтримка розподілених і нелінійних робочих процесів

Грубо кажучи, це програма за допомогою якої можна зберігати, «тегувати» код, змінювати версії коду і ще багато іншого на вашому проекті локально.

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


Що таке GitHub


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

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


Різниця між Git та GitHub


Основна відмінність Git від GitHub полягає в їхній функціональності. Хоча вони обидва забезпечують керування вихідним кодом (SCM) і спрощують об’єднання та спільний доступ до коду, на цьому їх схожість майже закінчується. Подумайте про Git як про локальний комп’ютер, а про GitHub – як про мережу кількох взаємопов’язаних комп’ютерів (віддалений сервер), усі з однаковою кінцевою метою, але надзвичайно різною роллю щодо того, як туди потрапити.

За своєю суттю Git — це безкоштовна розподілена система контролю версій програмного забезпечення (DVCS) із відкритим кодом, призначена для керування всією історією вихідного коду. Він може зберігати історію комітів, може скасовувати зміни та дозволяє розробникам ділитися кодом. Кожен розробник повинен мати встановлений Git на своєму локальному пристрої для співпраці. Його зазвичай називають одним із найкращих інструментів DevOps для розуміння та використання в просторі розробників, і він є одним із найпоширеніших інструментів сьогодні. Його використовують такі компанії, як Amazon, Facebook і Microsoft.

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


Команди, які найчастіше використовуються та їх опис


  • Розпочати потрібно з створення нового сховища (не забуваємо, що потрібно створювати робочу директорію і відкривати Bash в тому ж місці, де знаходиться папка Git).  Для цього вводимо в терміналі команду:
git init

Після цього з`являється прихована папка .git. Заходити туди нам не потрібно. Просто важливий сам факт, що вона з'явилася після введення команди.

Для перегляду поточного стану файлів і локального сховища в цілому, в терміналі потрібно ввести команду:

git status

На скрині йде вивід і демонстрація стану файлів:

⦁ new file - це файли, які тільки що проіндексували ( під контролем Git );

⦁ deleted - це файли, які були видалені з локального сховища;

⦁ modified - це файли, які були змінені, але їх зміна ще не була зафіксована;

⦁ untracked files - це файли, які ще не проіндексовані (не під контролем Git).


  • Для додавання файлів під контроль Git потрібно, для початку, проіндексувати файли:
git add article.rtf

де article.rtf - файл, який необхідно проіндексувати.


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

git add.

⦁ Для фіксації індексованих змін:

git commit -m “Коментар до коміту”


Дуже зручно, якщо ви бажаєте відразу і додати файли в індекс і зафіксувати зміни, зробити це не двома окремими командами, а просто однією командою так:

git commit -a -m “Коментар до коміту”



⦁ Далі для роботи з віддаленим репозиторієм потрібно до нього спочатку підключитися командою: 

git remote add test URL

де test - назва вашого сховища,
URL - URL - адреса вашого сховища.
 

Щоб подивитися список усіх віддалених репозиторіїв, скористайтеся командою:

git remote -v

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

git clone URL

URL - URL - адреса вашого сховища.


⦁ Для додавання інформації в віддалений репозиторій (наприклад, в GitHub, Bitbucket і т.д.) введіть команду: 

git push


Для спільної роботи над проектом вам потрібно буде “забирати” собі зміни та напрацювання інших учасників проекту. Щоб вилучити данні у свій репозиторій спочатку використовуємо команду: 

git fetch


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

git pull


Перегляд історії коммітів йде через команду: 

git log

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

git show 6441b05a802163b77c9d6f39f4fed7c44d92589

де 6441b05a802163b77c9d6f39f4fed7c44d925893 - це id комміта (можна побачити по логам).

На скрині зроблено вивід, що ми виконували в комміті

6441b05a802163b77c9d6f39f4fed7c44d925893. Для більшої наочності було взятий останній комміт, де у файлі t2.txt до вмісту `mariachange` була додана цифра 2.


Щоб подивитися, які зміни були внесені у файл, але ще не додавали в комміт, можна ввести команду: 

git diff


Видалити файл з репизиторію:

git rm photo1.png

де photo1.png - файл, який хочете видалити.

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

Створити гілку можна командою:

git branch test

де test - назва гілки.


Перегляд усіх існуючих гілок:

git branch -v

Зеленим кольором виділяється гілка, на якій ми зараз працюємо.

Щоб переключитися з однієї гілки на іншу:

git checkout test

Для видалення гілки (локально):

git branch -d article

де article - назва гілки.


Щоб видалити гілку на віддаленому сервері:

git push origin:test

де origin - назва віддаленого сховища;

test - назва гілки.


Злиття гілок виконується командою:

git merge test

Злиття поточної гілки з гілкою test.


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

git checkout 6441b05a802163b77c9d6f39f4fed7c44d925893 t2.txt

де 6441b05a802163b77c9d6f39f4fed7c44d925893 - id комміту.

t2.txt - файл, в якому робиться відкат.


#devnote


Отже, це знову ж таки тема, де потрібно самостійно спробувати «побавитися» з цим і просто набратися досвіду, бо яка б класна теорія не була, а без практики «далеко не заїдеш».

Хочу ще наголосити на тому, що вартує зразу ж вчитися командам Git, а не працювати через GitHub Desktop, бо на початку шляху (поки ви навчаєтесь) її буде достатньо, але коли будете працювати в команді над комерційним проектом, то дуже ймовірно, що можуть виникнути ситуації, де потрібно буде застосовувати всю потужність Git-a, але без попереднього досвіду зробити це буде тяжко і не комфортно – пишу з власного досвіду -_-

Залишаю вам трішки матеріалів для самостійної практики та вивчення: 

  • Зроблено в стилі гри, тому досить цікавий ресурс для практики: learngitbranching  
  • Офіційна документація: git
Завантажити сьогоднішній матеріал файлом можна тут.

Report Page