设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
补丁
调试
邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.48.1 → 2.49.0 没有更改
-
2.48.0
2025-01-10
- 2.47.1 → 2.47.2 没有更改
-
2.47.0
2024-10-06
- 2.45.1 → 2.46.3 没有更改
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.3 没有更改
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.6 没有更改
-
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
概要
git init [-q | --quiet] [--bare] [--template=<模板目录>] [--separate-git-dir <git-dir>] [--object-format=<format>] [--ref-format=<format>] [-b <branch-name> | --initial-branch=<branch-name>] [--shared[=<permissions>]] [<目录>]
描述
此命令创建一个空的 Git 仓库 - 基本上是一个包含 objects
, refs/heads
, refs/tags
子目录和模板文件的 .git
目录。 将创建一个不包含任何提交的初始分支 (请参阅下面的 --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
,但这在将来可能会更改;可以通过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>
-
<perm> 是一个以
0
开头的三位八进制数,每个文件都将具有模式 <perm>。 <perm> 将覆盖用户的umask
(2) 值(而不仅仅是像group
和all
那样放宽权限)。0640
将创建一个组可读但不可写或其他人无法访问的仓库。0660
将创建一个可由当前用户和组读取和写入的仓库,但其他人无法访问(目录和可执行文件从相应类别的用户的r
位获取其x
位)。
-
默认情况下,在共享仓库中启用配置标志 receive.denyNonFastForwards
,因此您不能强制执行非快进推送。
如果您提供一个 <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
-
允许覆盖新仓库的默认引用存储格式。 请参阅 git-init[1] 中的
--ref-format=
。 命令行选项和GIT_DEFAULT_REF_FORMAT
环境变量都优先于此配置。
GIT
属于 git[1] 套件的一部分