Новини високих технологій
» » Основні Git команди: шпаргалка

Основні Git команди: шпаргалка

19-09-2017, 18:00
1 927
У програмуванні серйозних автоматизованих комплексів, як правило, задіяні кілька розробників, які працюють над одним проектом. При цьому потрібно якось реалізувати можливість паралельного ведення завдання без шкоди для неї. Кожен учасник команди повинен знати, що він пише код, який не зможе змінити або видалити згодом інший програміст. При цьому дуже важливо мати можливість переглянути історію змін в розробці, тим самим швидко і надійно локализуя проблемні місця і помилки.
З цими завданнями покликані справлятися системи контролю версій. І однією з них є продукт під назвою Git.

Системи контролю версій: трохи теорії

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


Умовно системи контролю версій можна розділити на три типи: локальні; централізовані; розподілені.

Види систем контролю версій

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


Розподілені системи контролю версій кожного разу при зверненні до централізованого серверу створюють повну копію всіх файлів проекту на локальному комп'ютері користувача. Тобто в будь-який момент часу можуть існувати безліч копій одного проекту — на машинах учасників і на сервері. Зважаючи на гнучкі механізми розгалуження при такому підході, можна взагалі вести паралельну розробку в різних напрямках, при цьому залишаючись в рамках одного проекту. Git належить до розподілених систем керування версіями.

Git: опис і особливості системи

Система контролю версій Git володіє своїми особливостями. Більшість систем зберігає файли, змінюючи їх відповідно до інструкцій у проекті. То є, наприклад, версія поточної розробки під номером 3 може містити дані про зміни у файлі А і Б. А вже версія 4 буде мати в собі А, Б і В. Таким чином, файли змінюються за необхідності. Git працює трохи по-іншому. Кожна версія проекту буде містити в собі варіанти всіх файлів А, Б і Ст. незалежно від того, в скількох з них будуть проведені зміни. Звичайно, Git не зберігає кожен примірник файлу, а використовує лише посилання на нього.
Ще однією важливою особливістю є можливість безпосередньої роботи з локальним сховищем. Тобто якщо потрібно робити правки, то їх реалізують прямо на комп'ютері учасника проекту. Це дуже зручно, коли розробник знаходиться далеко від мережі Інтернет. Потім, при отриманні доступу до сервера, з'явиться можливість відправити всі дані в загальне сховище.
Для збереження цілісності даних застосовується метод хешування кожного зміненого файлу методом SHA-1. Це дозволяє системі контролю версій точно знати, де, хто і коли змінив файл.

Git: установка

Для того щоб почати працювати з Git, потрібно його встановити. Система контролю версій доступна для використання в Windows, Mac OS, Linux. Версію для Windows можна завантажити за адресою: git-for-windows.github.io. Після завантаження програми потрібно встановити. Простий інсталятор, так що ця процедура не повинна викликати проблем.
Дуже часто користувачі стикаються з такою проблемою, при якій консоль пише, що Git не є внутрішньою або зовнішньою командою при спробі ввести дані. Рішенням може послужити додавання повного шляху до каталогу у змінній оточення PATH.

Перші команди

Після встановлення системи контролю версій на комп'ютер, її необхідно налаштувати. Варто відзначити, що до цього моменту на сайті Github повинен бути зареєстрований свій аккаунт. Для того щоб виконати початкову настройку, потрібно викликати консольний клієнт, так як доведеться вводити команди. Зробити це можна, натиснувши праву кнопку миші і вибравши пункт Git Bash. Повинно відкритися вікно консольного клієнта, яке запросить ввести дані. У ньому потрібно виконати послідовно Git Bash команди: git config --global user.name "Ім'я"; git config --global user.mail "Адреса електронної пошти". На цьому ж етапі необхідно налаштувати метод закінчення рядків за допомогою двох команд: git config --global core.autocrlf true; git config --global core.safecrlf false. Для первинної настройки Git цього достатньо. Далі будуть використовуватися тільки команди для управління проектами.

Основні команди Git

Init: ця команда створює новий репозиторій. Приклад використання: init ім'я проекту. Clone. Виробляє копіювання існуючого сховища з віддаленого джерела. Ось так використовується команда git clone: clone git://github.com/шлях до дерева. Add. Найбільш часто використовувана команда в системі контролю версій Git. Вона виконує просту задачу — додає зазначені файли в особливу область, іменовану індексом або сценою. У неї можна перенести кілька файлів або папок, які необхідно буде згодом додати в репозиторій або, висловлюючись мовою Git, «закоммитить». Приклад використання цієї Git команди виглядає так: add некий_файл.txt.
Status. Дозволяє переглянути список файлів, які присутні в індексі і робочій папці. Служить для контролю і перегляду готових до коммиту даних або їх змінених, але не внесених версій в сцену.
Diff. Показує різницю станів. Наприклад, за допомогою цієї Git команди можна визначити, чи є зміни між папкою з проектом та індексом. Commit. Виконує збереження зліпка всього того, що знаходилося в індексі безпосередньо в базу даних. В результаті роботи Git команди на екрані з'явиться текстовий файл, в якому можна вказати, які саме зміни були зроблені. А також буде виведена інформація про те, скільки файлів зазнали коммиту, і його контрольна сума. Головне - не забувати про те, що після зміни в базу потраплять тільки ті дані, які були занесені в індекс командою git add.

Додаткові команди Git

Reset. Про функції цієї команди говорить її назва. Вона просто викидає із спеціальної проміжній області — індексу, вказаний файл, поміщений туди випадково. Варто обережно поводитися з reset при використанні команди з ключем - - hard, так як це торкнеться і файли в робочій папці, що може призвести до непередбачених наслідків. Rm. Найбільш точно цю команду можна описати як зворотний git add, так як вона видаляє файли з індексу. Правда, при цьому ще і з робочої папки. Приклад використання: git rm некий_файл.txt. Mv. Служить для переміщення файлу. Clean. Призначена для очищення папки проекту від непотрібних файлів. Представлені команди використовуються для загальних потреб проекту.

Робота з гілками репозиторіїв в Git

Для управління гілками в Git є спеціальний набір команд. Вони здатні об'єднувати, видаляти, створювати розгалуження в Git. Список команд представлений нижче. Branch. У цієї команди є в наявності кілька ключів, використовуючи які можна гнучко управляти гілками в проекті. Branch являє собою якийсь багатопрофільний інструмент для повноцінного контролю за станом репозиторію. Простий виклик git branch видасть перелік усіх наявних гілок сховища. Ключ -v доданий до команди відобразить які коміти були зафіксовані останнім часом. А використання -d призведе до видалення зазначеної гілки. Branch вміє не тільки видаляти, але і створювати. Виконання git branch имя_ветки призведе до організації нової гілки в проекті. Варто врахувати, що при цьому покажчик поточного робочого положення буває іншим. Приміром, створивши имя_ветки, можна насправді знаходиться в гілці master. Щоб переміститися в потрібний пункт, існує команда Git checkout нужная_ветка, яка переставить курсор у потрібну гілку. Checkout. Як вже говорилося вище, виконує перемикання. Merge. Дана команда дозволяє виробляти злиття декількох гілок воєдино. Log. Функція відображає всі зміни від початку проекту і до останнього коміта. Використання різноманітних ключів спільно з викликом команди дозволяє розширити її функціонал. Наприклад, виклик git log -p -2 дозволить переглянути детальну інформацію про зміни в кожному коммите. Другий ключ -2 говорить про те, що потрібно показати лише 2 останні зміни. Аргумент --stat, доданий до викликом git log, виконає практично те ж саме, що й -р, але в більш докладної і при цьому компактній формі. Також з допомогою git log можна виводити інформацію про зміни, створивши власний формат відображення, використовуючи опції format ключа pretty. Для додання особливого виду потрібно використовувати якусь подобу регулярних виразів. Наприклад, такий запис get log --pretty=format "%h, %an, %ar, %s" виведе короткий хеш коміта, потім його автора, дату і коментар зміни. Це дуже зручно використовувати при перегляді великої кількості комітів.

Команди для розподіленої роботи в системі

Fetch. При введенні даної команди git консоль виконає перенесення всіх змін з віддаленого сховища локальне. Pull. Команда git pull являє собою симбіоз двох перерахованих вище — git fetch і git merge. Тобто вона спочатку одержує відомості з віддаленого сховища, а потім виконує злиття з використовується в даний момент гілкою. Push. Саме від назви цієї команди в середовищі користувачів з'явився вираз «запушить», що означає з'єднання з віддаленим сховищем і передачу туди змін з локального.

Команди віддаленого управління

Remote. Являє собою потужний інструмент для управління віддаленими репозиторіями. З допомогою remote їх можна видаляти, переглядати, переміщувати або створювати нові. Archive. Назва говорить сама за себе. Команда дозволяє створювати архів з потрібними змінами, наприклад, для підготовки до передачі його по Мережі.

Як використовувати дану шпаргалку

Представлені в статті матеріали не відображають всі Git команди. Шпаргалка швидше покликана допомогти новачкам, бажаючим освоїти цей досить складний продукт для контролю версій. Людям, вже деякий час активно використовують Git, вона допоможе згадати раптово забутий ключ команди або її написання.
Насправді система контролю версій Git володіє величезним потенціалом в плані налаштування і управління. Велика кількість команд і кілька ключів, що використовуються в них — найкраще тому підтвердження. Для тих, хто бажає детально вивчити всі властивості і налаштування Git, існує маса мінлива, в тому числі і офіційний від Github, в якому детально описується система в цілому і всі тонкощі використання команд.
Цікаво по темі
Програми з розширенням tar.gz: як встановити, покрокова інструкція та рекомендації
Програми з розширенням tar.gz: як встановити, покрокова інструкція та рекомендації
Використання архівів типу tar і gz. Опис процесу встановлення і компіляції. Перелік основних програм.
Asterisk - команди. Робота з консоллю Asterisk
Asterisk - команди. Робота з консоллю Asterisk
Огляд системи Asterisk і команд для роботи з нею. Консольний введення і використання віддаленого з'єднання.
Як вивести в Linux список користувачів?
Як вивести в Linux список користувачів?
За допомогою якої команди можна переглянути в Linux список користувачів? Як розшифрувати отримані записи і зрозуміти, що написано на екрані?
Don't Starve: консольні команди. Використання команд
Don't Starve: консольні команди. Використання команд
У статті розповідається про консольні команди гри "Донт Старв", описані найбільш популярні команди, а також: хто може використовувати, а хто - ні.
Компілятор GCC для Windows
Компілятор GCC для Windows
З абревіатурою GCC знайомі багато людей, які пов'язані з розробкою програмного забезпечення. Це компілятор – інструмент для розробників, які є
Git - що таке? Git для початківців: опис
Git - що таке? Git для початківців: опис
Багато з тих, хто пов'язаний з розробкою програмного забезпечення, чули про Git. Що таке ці три літери? Дуже важливо зрозуміти опис, а також принципи