-
1. Вступ
- 1.1 Про систему контролю версій
- 1.2 Коротка історія Git
- 1.3 Основи Git
- 1.4 Git, зазвичай, тільки додає дані
- 1.5 Три стани
- 1.6 Командний рядок
- 1.7 Інсталяція Git
- 1.8 Початкове налаштування Git
- 1.9 Отримання допомоги
- 1.10 Підсумок
-
2. Основи Git
- 2.1 Створення Git-сховища
- 2.2 Запис змін до репозиторія
- 2.3 Перегляд історії комітів
- 2.4 Скасування речей
- 2.5 Взаємодія з віддаленими сховищами
- 2.6 Теґування
- 2.7 Псевдоніми Git
- 2.8 Підсумок
-
3. Галуження в git
- 3.1 Гілки у кількох словах
- 3.2 Основи галуження та зливання
- 3.3 Управління гілками
- 3.4 Процеси роботи з гілками
- 3.5 Віддалені гілки
- 3.6 Перебазовування
- 3.7 Підсумок
-
4. Git на сервері
- 4.1 Протоколи
- 4.2 Отримання Git на сервері
- 4.3 Генерація вашого публічного ключа SSH
- 4.4 Налаштування Серверу
- 4.5 Демон Git
- 4.6 Розумний HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Варіанти стороннього хостингу
- 4.10 Підсумок
-
5. Розподілений Git
-
6. GitHub
-
7. Інструменти Git
- 7.1 Вибір ревізій
- 7.2 Інтерактивне індексування
- 7.3 Ховання та чищення
- 7.4 Підписання праці
- 7.5 Пошук
- 7.6 Переписування історії
- 7.7 Усвідомлення скидання (reset)
- 7.8 Складне злиття
- 7.9 Rerere
- 7.10 Зневадження з Git
- 7.11 Підмодулі
- 7.12 Пакування
- 7.13 Заміна
- 7.14 Збереження посвідчення (credential)
- 7.15 Підсумок
-
8. Налаштування Git
-
9. Git and Other Systems
- 9.1 Git як клієнт
- 9.2 Міграція на Git
- 9.3 Підсумок
-
10. Git зсередини
- 10.1 Кухонні та парадні команди
- 10.2 Об’єкти Git
- 10.3 Посилання Git
- 10.4 Файли пакунки
- 10.5 Специфікація посилань (refspec)
- 10.6 Протоколи передачі
- 10.7 Супроводження та відновлення даних
- 10.8 Змінні середовища
- 10.9 Підсумок
-
A1. Додаток A: Git в інших середовищах
- A1.1 Графічні інтерфейси
- A1.2 Git у Visual Studio
- A1.3 Git в Eclipse
- A1.4 Git у Bash
- A1.5 Git у Zsh
- A1.6 Git у Powershell
- A1.7 Підсумок
-
A2. Додаток B: Вбудовування Git у ваші застосунки
- A2.1 Git з командного рядка
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
-
A3. Додаток C: Команди Git
- A3.1 Налаштування та конфігурація
- A3.2 Отримання та створення проектів
- A3.3 Базове збереження відбитків
- A3.4 Галуження та зливання
- A3.5 Поширення й оновлення проектів
- A3.6 Огляд та порівняння
- A3.7 Зневаджування
- A3.8 Латання (patching)
- A3.9 Електронна пошта
- A3.10 Зовнішні системи
- A3.11 Адміністрування
- A3.12 Кухонні команди
2.1 Основи Git - Створення Git-сховища
Якщо ви бажаєте прочитати тільки один розділ, щоб почати працювати з Git, саме цей вам і потрібен. У цьому розділі розглядаються всі основні команди, які потрібні для переважної більшості завдань, що виникають під час роботи з Git. До кінця розділу, ви будете в змозі налаштувати й ініціалізувати репозиторій, починати і зупиняти відстеження файлів, а також готувати і вносити зміни. Ми також покажемо вам, як налаштувати Git ігнорувати певні файли чи шаблони файлів, як швидко і легко скасувати помилки, як переглядати історію своїх проектів або зміни між комітами, а також як відправляти та отримувати зміни з віддалених репозиторіїв.
Створення Git-сховища
Зазвичай Git репозиторій отримують одним з двох способів:
-
Ви можете взяти локальну директорію, що наразі не під контролем версій, та перетворити її на сховище Git, або
-
Ви можете клонувати існуючий Git репозиторій.
У будь-якому разі ви отримаєте на локальній машині готове до роботи Git сховище.
Ініціалізація репозиторія в існуючому каталозі
Якщо у вас вже є тека з проєктом, що наразі не перебуває під контролем версії, і ви бажаєте почати використовувати з цим проєктом Git, спочатку необхідно перейти до теки цього проєкту. Якщо ви ще ніколи цього не робили, команда може трохи відрізнятися в залежності від вашої системи:
для Linux:
$ cd /home/user/my_project
для macOS:
$ cd /Users/user/my_project
для Windows:
$ cd C:/Users/user/my_project
та виконати:
$ git init
Це створить новий підкаталог .git
, який містить всі необхідні файли вашого репозиторія — основу Git-репозиторія.
Поки у вашому проєкті ще нічого не відстежується.
Див Git зсередини для отримання додаткової інформації про файли, що містяться в каталозі .git
, який ви щойно створили.
Якщо ви бажаєте додати існуючі файли під версійний контроль (на відміну від порожнього каталогу), ймовірно, вам слід почати відстежувати ці файли і зробити початковий коміт.
Ви можете це зробити за допомогою декількох git add
команд, що визначать файли, які ви плануєте відстежувати. Далі потрібно виконати git commit
:
$ git add *.c
$ git add LICENSE
$ git commit -m 'Початкова версія проєкту'
Ми розповімо що саме роблять ці команди за хвилину. Наразі, у вас є Git репозиторій з декількома відстежуваними файлами та першим комітом.
Клонування існуючого репозиторія
Якщо ви бажаєте отримати копію існуючого Git сховища — наприклад, проєкту, в якому ви хочете прийняти участь — вам потрібна команда git clone
.
Якщо ви знайомі з іншими СКВ, наприклад Subversion, ви помітите, що команда називається "clone" (клонувати), а не "checkout" (перевірити).
Це важлива відмінність — замість отримання просто робочої копії, Git отримує повну копію майже всіх даних, що є у сервера.
Кожна версія кожного файлу в історії проєкту витягується автоматично, коли ви виконуєте git clone
.
Насправді, якщо щось станеться з диском вашого серверу, ви зазвичай можете використати майже будь-який з клонів на будь-якому клієнті щоб повернути сервер до стану на момент клонування (ви можете втратити деякі серверні хуки (hook), проте усі дані під контролем версій повернуться – дивіться Отримання Git на сервері задля детальнішої інформації).
Щоб клонувати репозиторій треба використати команду git clone <url>
.
Наприклад, якщо ви бажаєте зробити клон бібліотеки Git libgit2
, ви можете зробити це так:
$ git clone https://github.com/libgit2/libgit2
Це створить теку під назвою libgit2
, проведе ініціалізацію піддиректорії .git
, стяне всі дані для цього репозиторія, та приведе директорію до стану останньої версії.
Якщо ви зайдете до щойно створеної директорії libgit2
, ви побачите, що всі файли проєкту на місці, готові для використання.
Якщо ви бажаєте зробити клон репозиторія в директорію з іншою назвою, ви можете передати її як додатковий параметр:
$ git clone https://github.com/libgit2/libgit2 mylibgit
Ця команда робить те саме, що й попередня, тільки цільова директорія називається mylibgit
.
Git має декілька різних протоколів передачі даних, які ви можете використовувати.
Попередній приклад використовує протокол https://
, проте ви також можете побачити git://
або user@server:шлях/до/репозиторія.git
, що використовує SSH протокол.
Отримання Git на сервері познайомить вас з усіма можливими варіантами доступу до Git репозиторія, які може мати сервер, та "за" та "проти" кожного.