init
TIP
git init
的一个常见问题是它没有创建远程存储库。
要解决这个问题,可以使用git remote
命令创建远程存储库,然后使用git push
将本地更改推送到远程存储库。
使用git init
时可能出现的其他问题包括没有创建存储库的正确权限,或者在错误的目录中运行命令。
若要解决这些问题,请确保您位于正确的目录中,并且您具有必要的权限。
此外,如果您使用的是Windows,您可能需要启用隐藏文件,以便查看由git init
创建的.git
文件夹。
创建一个空的 Git 仓库或重新初始化一个现有的仓库
语法
- git init
选项
- -q,--quiet
-
只打印错误和警告信息,其他所有输出都将被抑制。
- --bare
-
创建一个
裸仓库(不包含当前工作目录的仓库)
。如果未设置GIT_DIR
环境,则将其设置为当前工作目录。 - -b <branch-name>,--initial-branch=<branch-name>
-
为新创建的存储库中的初始分支使用指定的名称。如果未指定,请使用默认名称(当前为
master
,但以后可能会更改;可以通过init.defaultBranch
配置变量自定义名称)。 - --template=<template-directory>
-
指定使用模板的目录
-
模板目录中名称不以点开头的文件和目录将在创建后复制到
$GIT_DIR
。 -
模板目录将是以下之一(按顺序)。
-
- 使用
--template
选项给出的参数;
- 使用
-
$GIT_TEMPLATE_DIR
环境变量的内容;
-
init.templateDir
配置变量;
-
- 默认模板目录:
/usr/share/git-core/templates
- 默认模板目录:
-
默认的模板目录包括一些目录结构,建议的
排除模式
和示例挂钩文件。 -
默认情况下,样本挂钩均处于禁用状态。要启用其中一个示例挂钩,请通过删除其
.sample
后缀对其重命名。 - --separate-git-dir=<git-dir>
-
无需将存储库初始化为
$GIT_DIR
或./.git/
的目录,而是在其中创建一个包含实际存储库路径的文本文件。该文件充当与存储库无关的文件系统Git符号链接。 -
如果是重新初始化,版本库将被移动到指定的路径。
- --object-format=<format>
-
指定存储库的给定对象格式(哈希算法)。有效值为 sha1 和(如果启用) sha256 。 sha1 是默认设置。
-
此选项是实验性的! SHA-256支持处于试验阶段,仍处于早期阶段。通常,SHA-256存储库将无法与“常规” SHA-1存储库共享工作。应该假设,例如,与SHA-256存储库相关的Git内部文件格式可能会以向后不兼容的方式更改。仅将
--object-format=sha256
用于测试目的。 - --shared[=(false|true|umask|group|all|world|everybody|
)] -
指定要在多个用户之间共享Git存储库。这允许属于同一组的用户推入该存储库。指定后,设置配置变量
core.sharedRepository
,以便使用请求的权限创建$GIT_DIR
下的文件和目录。如果未指定,则Git将使用umask(2)报告的权限。 -
该选项可以具有以下值,如果没有给出值,则默认为
group
: -
- umask (or false)
使用umask(2)报告的权限。默认值 --shared 未指定。
- umask (or false)
-
- group (or true)
使存储库组可写(和g + sx,因为git组可能不是所有用户的主要组)。这用于放宽原本安全的umask(2)值的权限。请注意,umask仍然适用于其他权限位(例如,如果umask为 0022 ,则使用 group 不会删除其他(非组)用户的读取特权)
- group (or true)
-
- all (or world or everybody)
与group
相同,但使存储库对所有用户可读。
- all (or world or everybody)
-
-
<perm>
<perm>
是一个以0
为前缀的 3 位八进制数,每个文件都有模式<perm>
。<perm>
将覆盖用户的 umask(2) 值(并且不仅像group
和all
那样放松权限)。0640:将创建一个可组读取的存储库,但不可组写入或其他人无法访问。
0660:将创建一个对当前用户和组可读和可写但对其他人不可访问的存储库(目录和可执行文件从相应用户类别的r
位获取它们的x
位)。
-
-
默认情况下,共享存储库中启用了配置标志
receive.denyNonFastForwards
,因此您不能强制将非快速转发推送到其中。 -
如果提供
directory
,则命令将在其中运行。如果此目录不存在,将创建它。
描述
此命令将创建一个空的Git存储库-基本上是一个 .git
目录,其中包含 objects
, refs/heads
, refs/tags
和模板文件的子目录。
将创建不带任何提交的初始分支
如果设置了 $GIT_DIR
环境变量,则它将指定用于存储库基础的路径,而不是 ./.git
如果通过 $GIT_OBJECT_DIRECTORY
环境变量指定了对象存储目录,则将在下面创建sha1
目录,否则将使用默认的 $GIT_DIR/objects
目录。
在现有存储库中运行 git init
是安全的。它不会覆盖已经存在的内容。重新运行 git init 的主要原因是选择新添加的模板(如果给定了--separate-git-dir
,则将存储库移至另一个位置)