设置和配置
获取和创建项目
基本快照
分支与合并
共享和更新项目
检查和比较
打补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
-
2.52.0
2025-11-17
- 2.48.1 → 2.51.2 无更改
-
2.48.0
2025-01-10
- 2.47.1 → 2.47.3 无更改
-
2.47.0
2024-10-06
- 2.45.1 → 2.46.4 无变化
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.4 无更改
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 无更改
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 无更改
-
2.42.0
2023-08-21
- 2.38.1 → 2.41.3 无更改
-
2.38.0
2022-10-02
- 2.35.1 → 2.37.7 无更改
-
2.35.0
2022-01-24
- 2.30.1 → 2.34.8 无更改
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 无更改
-
2.29.0
2020-10-19
- 2.28.1 无更改
-
2.28.0
2020-07-27
- 2.27.1 无更改
-
2.27.0
2020-06-01
- 2.21.1 → 2.26.3 无更改
-
2.21.0
2019-02-24
- 2.13.7 → 2.20.5 无更改
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 无更改
-
2.9.5
2017-07-30
- 2.5.6 → 2.8.6 无更改
-
2.4.12
2017-05-05
- 2.3.10 无更改
-
2.2.3
2015-09-04
- 2.1.4 无更改
-
2.0.5
2014-12-17
概要
gitinit[-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 时将仓库移动到另一个位置)。
选项
过去,我们曾警告说 SHA-256 仓库在引入此类互操作性功能时可能需要向后不兼容的更改。今天,我们仅预期兼容性更改。此外,如果事实证明这些更改是必要的,那么可以预期今天 Git 创建的 SHA-256 仓库将在不丢失数据的情况下被未来版本的 Git 使用。
--ref-format=<format>-
为仓库指定给定的引用存储<format>。有效值为
-
files表示带有 packed-refs 的松散文件。这是默认值。 -
reftable表示 reftable 格式。此格式是实验性的,其内部结构可能会更改。
-
--template=<template-directory>-
指定将使用模板的目录。(请参阅下面的“模板目录”部分。)
--separate-git-dir=<git-dir>-
而不是将仓库初始化为一个目录(位于
$GIT_DIR或./.git/),而是创建一个包含实际仓库路径的文本文件。此文件充当仓库的文件系统无关的 Git 符号链接。如果这是重新初始化,仓库将被移动到指定路径。
-b<branch-name>--initial-branch=<branch-name>-
在新创建的仓库中使用<branch-name>作为初始分支。如果未指定,则回退到默认名称(当前为
master,但在 Git 3.0 发布时将更改为main)。默认名称可以通过init.defaultBranch配置变量进行自定义。 -
指定 Git 仓库将由多个用户共享。这允许属于同一组的用户将更改推送到该仓库。指定时,将设置
core.sharedRepository配置变量,以便$GIT_DIR下的文件和目录以请求的权限创建。未指定时,Git 将使用umask(2) 报告的权限。该选项可以具有以下值,如果未提供值,则默认为
groupumaskfalse-
使用
umask(2) 报告的权限。在未指定--shared时为默认值。 grouptrue-
使仓库可组写(并且
g+sx,因为 git 组可能不是所有用户的首选组)。这用于放宽本来安全的umask(2) 值的权限。请注意,umask 仍然适用于其他权限位(例如,如果 umask 是0022,则使用group不会删除其他(非组)用户的读取权限)。有关如何精确指定仓库权限,请参见0xxx。 allworldeverybody-
与
group相同,但使仓库可供所有用户读取。 - <perm>
-
<perm> 是一个三位数八进制数,以
0开头,每个文件都将具有模式<perm>。<perm> 将覆盖用户的umask(2) 值(不像group和all那样只是放宽权限)。0640将创建一个组可读但不可组写且对其他人不可访问的仓库。0660将创建一个对当前用户和组可读可写但对其他人不可访问的仓库(目录和可执行文件将从对应用户类别r位中获取其x位)。
默认情况下,在共享仓库中启用 receive.denyNonFastForwards 配置标志,因此您无法强制将非快进推送(non fast-forwarding push)到其中。
如果提供<directory>,则该命令将在其中运行。如果该目录不存在,则将创建它。
模板目录
模板目录中名称不以点开头的文件和目录将在创建 $GIT_DIR 后复制到其中。
模板目录将是以下之一(按顺序)
-
使用
--template选项给出的参数; -
$GIT_TEMPLATE_DIR环境变量的内容; -
init.templateDir配置变量;或 -
默认模板目录:
/usr/share/git-core/templates。
默认模板目录包含一些目录结构、建议的“排除模式”(请参阅 gitignore[5])以及示例钩子文件。
默认情况下,示例钩子均被禁用。要启用其中一个示例钩子,请通过删除其 .sample 后缀来重命名它。
有关钩子执行的更一般信息,请参见 githooks[5]。
配置
本节中以下所有内容均从 git-config[1] 文档中选择性地包含。内容与彼处相同:
init.templateDir-
指定将从哪个目录复制模板。
init.defaultBranch-
允许覆盖默认分支名称,例如在初始化新仓库时。
init.defaultObjectFormat-
允许覆盖新存储库的默认对象格式。请参阅 git-init[1] 中的
--object-format=。命令行选项和GIT_DEFAULT_HASH环境变量都优先于此配置。 init.defaultRefFormat-
允许覆盖新存储库的默认 ref 存储格式。请参阅 git-init[1] 中的
--ref-format=。命令行选项和GIT_DEFAULT_REF_FORMAT环境变量都优先于此配置。