Git
Chapters ▾ 2nd Edition

2.1 Основи Git - Створення Git-репозиторія

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

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

Зазвичай Git репозиторій отримують одним з двох способів:

  1. Беруть локальну директорію, що наразі не під контролем версій, та перетворюють її на сховище Git, або

  2. Звідкілясь клонують існуючий Git репозиторій.

У будь-якому разі ви отримуєте на локальній машині готове до роботи Git сховище.

Ініціалізація репозиторія в існуючому каталозі

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

для Linux:

$ cd /home/user/my_project

для Mac:

$ cd /Users/user/my_project

для Windows:

$ cd /c/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 репозиторія, які може мати серверу, та "за" та "проти" кожного.