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.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 是安全的。它不会覆盖已经存在的内容。重新运行 git init 的主要原因是选择新添加的模板(如果给定了 --separate-git-dir 参数,则将仓库移至另一个位置)。
选项
过去,我们曾警告说,当我们引入此类互操作性功能时,SHA-256 仓库以后可能需要进行向后不兼容的更改。如今,我们只期待兼容的更改。此外,如果事实证明有必要进行此类修改,可以预期的是,用现在的 Git 创建的 SHA-256 仓库将可用于未来版本的 Git,而不会丢失数据。
Warning
|
Missing See original version for this content. |
- --template=<模板目录>
-
指定要使用模板的目录。(请参见下面的 “模板目录” 部分。)
- --separate-git-dir=<Git 目录>
-
并不将存储库初始化至
$GIT_DIR
或./.git/
目录,而是在其中创建一个包含实际仓库路径的文本文件。此文件作为连接到仓库的 Git 符号链接,其与文件系统无关。如果为重新初始化操作,则将仓库移动到指定的路径。
- -b <分支名>
- --initial-branch=<分支名>
-
在新创建的仓库中使用指定的名称作为初始分支。 如果未指定,则返回默认名称(目前为
master
,但将来可能会更改;可通过init.defaultBranch
配置变量自定义名称)。 -
指定 Git 仓库在多个用户之间共享。这允许属于同一组的用户推送到该仓库。指定时,将设置配置变量 "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 选项相同,但使仓库对所有用户可读。
- <perm>
-
<许可> 是一个以
0
为前缀的三位八进制数,每个文件都有 <许可> 模式。<许可> 将覆盖用户的 umask(2) 值(而不只是像 group 和 all 那样放宽权限)。0640 将创建一个群组可读、但群组不可写或他人不可访问的仓库。0660 将创建一个当前用户和组可读可写,但其他用户不可访问的仓库(目录和可执行文件的x
位来自相应用户类别的r
位)。
默认情况下,共享仓库中启用了配置标志 receive.denyNonFastForwards
,因此您不能强制将非快速转发提交推送到该仓库中。
如果提供 dicrectory,则命令在其中运行。如果此目录不存在,则创建它。
模板目录
模板目录中名称不以点开头的文件和目录将在创建后复制到 $GIT_DIR
中。
模板目录将是以下之一(按顺序):
-
用
--template
选项给出的参数; -
$GIT_TEMPLATE_DIR
环境变量的内容; -
init.templateDir
配置变量;或者 -
默认模板目录:
/usr/share/git-core/templates
。
默认的模板目录包括一些目录结构,建议的 “排除模式”(请参阅 gitignore[5])和示例钩子文件。
默认情况下,样例钩子都被禁用。要启用一个示例挂钩,请通过删除其后缀 .sample
对其重命名。
有关钩子执行的更多信息,请参见 githooks[5]。
配置
Warning
|
Missing See original version for this content. |
Warning
|
Missing See original version for this content. |
GIT
属于 git[1] 文档