Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.48.0 01/10/25
- 2.47.1 no changes
- 2.47.0 10/06/24
- 2.45.1 → 2.46.2 no changes
- 2.45.0 04/29/24
- 2.44.1 → 2.44.2 no changes
- 2.44.0 02/23/24
- 2.43.1 → 2.43.5 no changes
- 2.43.0 11/20/23
- 2.42.1 → 2.42.3 no changes
- 2.42.0 08/21/23
- 2.38.1 → 2.41.2 no changes
- 2.38.0 10/02/22
- 2.35.1 → 2.37.7 no changes
- 2.35.0 01/24/22
- 2.30.1 → 2.34.8 no changes
- 2.30.0 12/27/20
- 2.29.1 → 2.29.3 no changes
- 2.29.0 10/19/20
- 2.28.1 no changes
- 2.28.0 07/27/20
- 2.27.1 no changes
- 2.27.0 06/01/20
- 2.21.1 → 2.26.3 no changes
- 2.21.0 02/24/19
- 2.13.7 → 2.20.5 no changes
- 2.12.5 09/22/17
- 2.10.5 → 2.11.4 no changes
- 2.9.5 07/30/17
- 2.5.6 → 2.8.6 no changes
- 2.4.12 05/05/17
- 2.3.10 no changes
- 2.2.3 09/04/15
- 2.1.4 no changes
- 2.0.5 12/17/14
ОБЗОР
git init [-q | --quiet] [--bare] [--template=<каталог-шаблонов>] [--separate-git-dir <каталог-git>] [--object-format=<формат>] [--ref-format=<формат>] [-b <ветка> | --initial-branch=<ветка>] [--shared[=<права-доступа>]] [каталог]
ОПИСАНИЕ
Эта команда создаёт пустой репозиторий Git, то есть по существу только каталог .git
с подкаталогами objects
, refs/heads
, refs/tags
, и файлами шаблонов. Будет создана начальная ветка без коммитов (см. параметр --initial-branch
для изменения её имени).
Если переменная среды GIT_DIR
установлена, то она задаёт путь, который будет использоваться вместо .git
в качестве базового пути для создания репозитория.
Если каталог хранения объектов задан с помощью переменной среды GIT_OBJECT_DIRECTORY
, то каталоги с хеш-кодом sha1 будут создаваться в нём. В противном случае будет использоваться каталог по умолчанию, $GIT_DIR/objects
.
Запускать 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=<формат>
-
Задаёт <формат> хранения ссылок репозитория. Допустимые значения:
-
files
: ссылки хранятся в виде несвязанного набора файлов и файлаpacked-refs
. Это формат по умолчанию. -
reftable
: reftable-формат. Этот формат является экспериментальным, и его внутреннее устройство может измениться.
-
-
--template=<каталог-шаблонов>
-
Задаёт каталог с шаблонами. (См. раздел «КАТАЛОГ ШАБЛОНОВ» ниже)
-
--separate-git-dir=<каталог-git>
-
Вместо того, чтобы инициализировать репозиторий в
$GIT_DIR
или в./.git/
, создать текстовый файл, содержащий путь к реальному репозиторию. Этот файл будет выступать в роли независящей от файловой системы символической ссылки Git на этот репозиторий.Если это повторная инициализация, то репозиторий будет перенесён в каталог по указанному пути.
-
-b <имя-ветки>
-
--initial-branch=<имя-ветки>
-
Использовать <имя-ветки> для исходной ветки вновь созданного репозитория. Если не указано, будет использован параметр по умолчанию (в настоящее время — это «
master
», но это может быть изменено в будущем; это имя можно изменить в переменной конфигурацииinit.defaultBranch
). -
Указывает, что репозиторий 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
, но также сделать репозиторий доступным на чтение для всех пользователей. - <права-доступа>
-
<права-доступа> — это 3-значное восьмеричное число с префиксом
0
; каждый файл будет иметь режим доступа равный <правам-доступа>. Значение <прав-доступа> будет полностью перекрывать значениеumask
(2) пользователя (а не только ослаблять разрешения как это происходит сgroup
иall
). Так,0640
создаст репозиторий, доступный группе на чтение, но не на запись или на исполнения для всех остальных;0660
— доступный на чтение и запись текущему пользователю и его группе, но недоступный для остальных (каталоги и исполняемые файлы получат свой битx
при указанииr
для соответствующих классов пользователей).
-
В общих репозиториях флаг конфигурации receive.denyNonFastForwards
по умолчанию включён, так что вы не cможете принудительно отправить в него (git push -f
) изменения, которые не могут быть применены с помощью быстрой перемотки.
Если вы задали <каталог>, команда будет выполняться внутри него. Если этот каталог ещё не существует, он будет создан.
КАТАЛОГ ШАБЛОНОВ
Файлы и каталоги, из каталога шаблонов, чьи имена начинаются не с точки будут скопированы в $GIT_DIR
после того, как он будет создан.
В качестве каталога шаблонов будет использоваться один из следующих (в порядке перечисления):
-
аргумент, указанный в параметре
--template
; -
значение переменной среды
$GIT_TEMPLATE_DIR
; -
переменная настройки
init.templateDir
; или -
каталог шаблонов по умолчанию:
/usr/share/git-core/templates
.
Каталог шаблонов по умолчанию уже содержит некоторую структуру каталогов: рекомендованные «шаблоны исключений» (exlude patterns, см. gitignore[5]) и примеры файлов-перехватчиков (hook).
Примеры файлов-перехватчиков по умолчанию отключены. Чтобы включить один из них, переименуйте его, удалив суффикс .sample
.
См. подробности того, как происходит вызов перехватчиков в githooks[5].
КОНФИГУРАЦИЯ
Дальнейшее содержание этого раздела, повторяет то, что может быть найдено в git-config[1]:
Warning
|
Missing See original version for this content. |
GIT
Является частью пакета git[1]