українська мова ▾ Topics ▾ Latest version ▾ git-init last updated in 2.52.0

НАЗВА

git-init  — Створення порожнього Git-репозиторію або повторна ініціалізація наявного репозиторію

СИНОПСИС

git init [-q | --quiet] [--bare] [--template=<template-directory>]
	 [--separate-git-dir <git-dir>] [--object-format=<format>]
	 [--ref-format=<format>]
	 [-b <branch-name> | --initial-branch=<branch-name>]
	 [--shared[=<permissions>]] [<directory>]

ОПИС

Ця команда створює порожній репозиторій Git — по суті, теку .git з підтеками для objects, refs/heads, refs/tags та файлів шаблонів. Буде створено початкову гілку без будь-яких комітів (див. опцію --initial-branch для зазначення назви гілки нижче).

Якщо встановлено змінну середовища GIT_DIR, вона вказує шлях, який слід використовувати замість ./.git для бази репозиторію.

Якщо теку для зберігання обʼєктів вказано через змінну середовища GIT_OBJECT_DIRECTORY, то теки sha1 створюються в ній; в іншому випадку використовується стандартна тека $GIT_DIR/objects.

Запуск git init в поточному репозиторії є безпечним. Він не перезапише те, що вже там є. Основною причиною повторного запуску git init є отримання щойно доданих шаблонів (або переміщення репозиторію в інше місце, якщо вказано --separate-git-dir).

ОПЦІЇ

-q
--quiet

Виводяться лише повідомлення про помилки та попередження; весь інший вивід буде відкинуто.

--bare

Створення чистого репозиторію. Якщо змінна середовища GIT_DIR не встановлена, її значення встановлюється на поточну робочу теку.

--object-format=<формат>

Вкажіть <формат> для обʼєктів (алгоритм хешування) репозиторію. Допустимі значення: sha1 та (якщо увімкнено) sha256. sha1 є стандартним значенням.

Примітка: Наразі немає зворотної сумісності між репозиторіями SHA-256 та репозиторіями SHA-1.

Зазвичай, ми попереджали, що репозиторії SHA-256 можуть пізніше потребувати змін, що впливають на зворотню сумісність, коли ми впроваджуватимемо такі функції сумісності. Сьогодні ми очікуємо лише сумісних змін. Крім того, якщо такі зміни виявляться необхідними, можна очікувати, що репозиторії SHA-256, створені за допомогою сучасного Git, можна буде використовувати в майбутніх версіях Git без втрати даних.

--ref-format=<формат>

Вкажіть <формат> зберігання посилань ref для репозиторію. Допустимі значення:

  • files для окремих файлів з упакованими посиланнями. Це стандартне значення.

  • reftable для формату reftable. Цей формат є експериментальним, і його внутрішня структура може бути змінена.

--template=<тека-шаблонів>

Вкажіть теку, в якій знаходяться шаблони для використання. (Див. розділ «ТЕКА ШАБЛОНІВ» нижче.)

--separate-git-dir=<git-dir>

Замість ініціалізації репозиторію як теки з $GIT_DIR або ./.git/, створює текстовий файл, що містить шлях до фактичного репозиторію. Цей файл діє як символічне посилання Git на репозиторій, незалежно від файлової системи.

Якщо це повторна ініціалізація, репозиторій буде переміщено за вказаним шляхом.

-b <назва-гілки>
--initial-branch=<назва-гілки>

Використовувати <назву-гілки> для початкової гілки у щойно створеному репозиторії. Якщо не вказано, використовується стандартна назва (наразі master, але зміниться на main після виходу Git 3.0). Стандартну назву гілки можна вказати за допомогою змінної конфігурації init.defaultBranch.

--shared[=(false|true|umask|group|all|world|everybody|<права-доступу>)]

Визначає, що репозиторій Git має бути спільним для кількох користувачів. Це дозволить користувачам, які належать до однієї групи, надсилати зміни (push) до цього репозиторію. Якщо вказано, змінна конфігурації core.sharedRepository встановлюється таким чином, що файли та теки в $GIT_DIR створюються із вказаними правами доступу. Якщо не вказано, Git використовуватиме права доступу, надані umask(2).

Опція може мати такі значення, стандартне значення group, якщо значення не вказане:

umask
false

Використовувати дозволи, що повідомляються umask(2). Стандартне значення, коли --shared не вказано.

group
true

Робить репозиторій доступним до запису групою (та g+sx, оскільки група git може не бути основною групою всіх користувачів). Це використовується для послаблення дозволів безпечного значення umask(2). Зверніть увагу, що umask все ще застосовується до інших бітів дозволів (наприклад, якщо umask дорівнює 0022, використання group не скасує права читання для інших користувачів (які не входять до групи). Дивіться 0xxx, щоб дізнатися, як точно вказати дозволи доступу для репозиторію.

all
world
everybody

Те саме, що й group, але робить репозиторій доступним для читання всім користувачам.

<права-доступу>

<права-доступу> — це тризначне вісімкове число з префіксом 0, кожен файл матиме <права-доступу. <права-доступу> перевизначають значення umask(2) користувачів (і не лише послабить дозволи, як це роблять group та all). 0640 створить репозиторій, який буде доступний для читання групою, але не для запису групою чи іншим особам. 0660 створить репозиторій, який буде доступний для читання та запису поточному користувачеві та групі, але недоступний для інших (теки та виконувані файли отримують свій біт x від біта r для відповідних класів користувачів).

Типово прапорець конфігурації receive.denyNonFastForwards увімкнено у спільних репозиторіях, тому ви не можете примусово надіслати туди дані без переходу вперед (fast-forward).

Якщо ви вкажете <теку>, команда виконується в ній. Якщо теки не існує, її буде створено.

ТЕКА ШАБЛОНІВ

Файли та теки в теці шаблону, назви яких не починаються з крапки, будуть скопійовані до теки $GIT_DIR після її створення.

Текою шаблонів буде одне з наступного (за порядком):

  • аргумент, заданий за допомогою опції --template;

  • вміст змінної середовища $GIT_TEMPLATE_DIR;

  • змінна конфігурації init.templateDir; або

  • стандартна тека шаблонів: /usr/share/git-core/templates.

Стандартна тека шаблонів містить певну структуру тека, запропоновані «шаблони виключень» (див. gitignore[5]) та зразки файлів гачків.

Типово усі зразки гачків вимкнено. Щоб увімкнути один зі зразків гачків, перейменуйте його, видаливши суфікс .sample.

Див. githooks[5] для отримання додаткової інформації про виконання гачків.

ПРИКЛАДИ

Створення нового репозиторію Git для поточного коду
$ cd /path/to/my/codebase
$ git init      (1)
$ git add .     (2)
$ git commit    (3)
  1. Створює теку path/to/my/codebase/.git.

  2. Додає всі наявні файли до індексу.

  3. Записує початковий стан як перший коміт в історії.

КОНФІГУРАЦІЯ

Все, що знаходиться нижче цього рядка в цьому розділі, вибірково включено з документації git-config[1]. Вміст такий самий, як і там:

init.templateDir

Вкажіть теку, з якої будуть скопійовані шаблони.

init.defaultBranch

Дозволяє перевизначити назву стандартної гілки, наприклад, під час ініціалізації нового репозиторію.

init.defaultObjectFormat

Дозволяє перевизначати стандартний формат обʼєктів для нових репозиторіїв. Див. --object-format= у git-init[1]. Як параметр командного рядка, так і змінна середовища GIT_DEFAULT_HASH мають пріоритет над цією конфігурацією.

init.defaultRefFormat

Дозволяє перевизначити стандартний формат зберігання посилань для нових репозиторіїв. Див. --ref-format= у git-init[1]. Як параметр командного рядка, так і змінна середовища GIT_DEFAULT_REF_FORMAT мають пріоритет над цією конфігурацією.

GIT

Частина набору git[1]