Зазвичай Git репозиторій отримують одним з двох способів:
-
Беруть локальну директорію, що наразі не під контролем версій, та перетворюють її на сховище Git, або
-
Звідкілясь клонують існуючий 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-репозиторія.
На цей момент, у вашому проекті ще нічого не відстежується.
(Див ch10-git-internals.asc для отримання додаткової інформації про файли, що містяться в каталозі .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), проте усі дані під контролем версій повернуться – дивіться ch04-git-on-the-server.asc задля детальнішої інформації).
Щоб клонувати репозиторій треба використати команду 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 протокол.
ch04-git-on-the-server.asc познайомить вас з усіма можливими варіантами доступу до Git репозиторія, які може мати сервер, та "за" та "проти" кожного.