Встановлення

GitHub Desktop

desktop.github.com

Git для всіх платформ

git-scm.com

Налаштування інструментарію

Налаштування інформації про користувача для всіх локальних репозиторіїв

$ git config --global user.name "[ім'я]"

Встановлює ім’я користувача, що буде вказано для всіх ваших комітів

$ git config --global user.email "[поштова скринька]"

Встановлює поштову скриньку, що буде вказана для всіх ваших комітів

$ git config --global color.ui auto

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

Гілки

Гілки (branches) - важлива частина роботи з Git. Всі коміти будуть додаватися на гілку, на якій ви наразі знаходитесь (checkout). git status підкаже поточну гілку.

$ git branch [назва-гілки]

Створює нову гілку

$ git switch -c [назва-гілки]

Переходить на вказану гілку і оновлює робочу директорію

$ git merge [назва-гілки]

Поєднує історію вказаної гілки з поточною. На GitHub операція інколи потребує запиту (pull request)

$ git branch -d [назва-гілки]

Видаляє вказану гілку

Створення репозиторіїв

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

$ git init

Після виклику git init, створює посилання з локального репозиторію на пустий репозиторій на GitHub

$ git remote add origin [посилання]

Перетворює існуючу директорію на репозиторій Git

$ git clone [посилання]

Клонує (завантажує) існуючий репозиторій з GitHub, з усіма файлами, гілками і комітами

Файл .gitignore

Інколи з репозиторію Git варто виключити деякі файли. Це можна зробити, створивши спеціальний файл під назвою .gitignore. Корисні шаблони для .gitignore файлів можна знайти на github.com/github/gitignore.

Синхронізація змін

Синхронізація вашого локального репозиторію з репозиторієм на GitHub.com

$ git fetch

Завантажує всю історію з віддалених гілок

$ git merge

Поєднує віддалені гілки з поточною локальною гілкою

$ git push

Завантажує всі локальні зміни в гілках на GitHub

$ git pull

Оновлює локальну поточну гілку новими комітами з відповідної віддаленої гілки. git pull — це поєднання git fetch та git merge

Внесення змін

Перегляд еволюції файлів проєкту

$ git log

Виводить історію версії поточної гілки

$ git log --follow [назва файлу]

Виводить історію версії вказаного файлу, включно з перейменуваннями

$ git diff [перша-гілка]...[друга-гілка]

Виводить різницю між двома гілками

$ git show [коміт]

Виводить метадані та зміни вказаного коміту

$ git add [назва файлу]

Зберігає зміни в файлі, готуючись до створення коміту

$ git commit -m "[повідомлення з описом]"

Записує зміни в файлі в історію версій, створюючи новий коміт

Відновлення комітів

Видалення помилок і створення нової історії версій

$ git reset [коміт]

Відміняє всі коміти після вказаного, зберігаючи зміни локально

$ git reset --hard [коміт]

Видаляє всю історію і повертається до вказаного коміту

ОБЕРЕЖНО! Зміни в історії можуть мати кепські наслідки. Якщо вам треба змінити коміти, що існують на GitHub (віддалено), дійте обережно. Якщо вам потрібна допомога, звертайтесь до github.community або до підтримки.

Глосарій

  • git: розподілена система контролю версій з відкритим кодом
  • GitHub: платформа для хостингу і співпраці над репозиторіями Git
  • коміт (commit): об’єкт Git, стан всього репозиторію стиснутий в SHA
  • гілка (branch): невеликий рухомий вказівник на коміт
  • клон (clone): локальна версія репозиторію, включно з усіма комітами і гілками
  • віддалений репозиторій (remote): спільний GitHub репозиторій, що використовується членами команди для обміну змінами
  • fork: копія репозиторію GitHub іншого користувача
  • запит на поєднання (pull request): спосіб порівняти і обговорити зміни на гілці з відгуками, коментарями, інтегрованими тестами і т.д.
  • HEAD: вказівник, що позначає поточну робочу директорію. Може вказувати на різні гілки, теги і коміти з використанням git switch