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.52.0
2025-11-17
- 2.48.1 → 2.51.2 no changes
-
2.48.0
2025-01-10
- 2.47.1 → 2.47.3 no changes
-
2.47.0
2024-10-06
- 2.45.1 → 2.46.4 no changes
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.4 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 no changes
-
2.42.0
2023-08-21
- 2.38.1 → 2.41.3 no changes
-
2.38.0
2022-10-02
- 2.35.1 → 2.37.7 no changes
-
2.35.0
2022-01-24
- 2.30.1 → 2.34.8 no changes
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.28.1 no changes
-
2.28.0
2020-07-27
- 2.27.1 no changes
-
2.27.0
2020-06-01
- 2.21.1 → 2.26.3 no changes
-
2.21.0
2019-02-24
- 2.13.7 → 2.20.5 no changes
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 no changes
-
2.9.5
2017-07-30
- 2.5.6 → 2.8.6 no changes
-
2.4.12
2017-05-05
- 2.3.10 no changes
-
2.2.3
2015-09-04
- 2.1.4 no changes
-
2.0.5
2014-12-17
概述
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,而不会丢失数据。
-
--template=<模板目录> -
指定要使用模板的目录。(请参见下面的 “模板目录” 部分。)
- --separate-git-dir=<Git 目录>
-
并不将存储库初始化至
$GIT_DIR或./.git/目录,而是在其中创建一个包含实际仓库路径的文本文件。此文件作为连接到仓库的 Git 符号链接,其与文件系统无关。如果为重新初始化操作,则将仓库移动到指定的路径。
-
-b<分支名> -
--initial-branch=<分支名> -
Use <branch-name> for the initial branch in the newly created repository. If not specified, fall back to the default name (currently
master, but this will change tomainwhen Git 3.0 is released). The default name can be customized via theinit.defaultBranchconfiguration variable. -
指定 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选项相同,但使仓库对所有用户可读。 - <许可>
-
<许可> 是一个以
0为前缀的三位八进制数,每个文件都有 <许可> 模式。<许可> 将覆盖用户的 umask(2) 值(而不只是像group和all那样放宽权限)。0640将创建一个群组可读、但群组不可写或他人不可访问的仓库。0660将创建一个当前用户和组可读可写,但其他用户不可访问的仓库(目录和可执行文件的x位来自相应用户类别的r位)。
-
默认情况下,共享仓库中启用了配置标志 receive.denyNonFastForwards,因此您不能强制将非快速转发提交推送到该仓库中。
如果提供 <目录>,则命令在其中运行。如果此目录不存在,则创建它。
模板目录
模板目录中名称不以点开头的文件和目录将在创建后复制到 $GIT_DIR 中。
模板目录将是以下之一(按顺序):
-
用
--template选项给出的参数; -
$GIT_TEMPLATE_DIR环境变量的内容; -
init.templateDir配置变量;或者 -
默认模板目录:
/usr/share/git-core/templates。
默认的模板目录包括一些目录结构,建议的 “排除模式”(请参阅 gitignore[5])和示例钩子文件。
默认情况下,样例钩子都被禁用。要启用一个示例挂钩,请通过删除其后缀 .sample 对其重命名。
有关钩子执行的更多信息,请参见 githooks[5]。
配置
本节中这一行以下的内容都是从 git-config[1] 文档中摘录的。其内容与那里的内容相同:
|
Warning
|
Missing See original version for this content. |
GIT
属于 git[1] 文档