Git命令列表--git-init
Git Init
名称
git-init-
语法(概要)
git init [-q | --quiet] [--bare] [--template=<template-directory>]
[--separate-git-dir <git-dir>] [--object-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 则将存储库移动到另一个地方)
选项
--initial-branch 初始分支名称
-q --quiet 只打印错误和警告信息;所有其他输出将被抑制。
--bare 创建裸存储库,如果环境中GIT_DIR未设置,则设置为当前工作目录
--object-format=<format> 指定存储库的给定对象格式(哈希算法),有效的值可以是sha1和sha256。sha1是默认值。
--template=<template-directory> 指定将使用模板的目录
--separate-git-dir=<git-dir> 分离现有的Git库
-b <branch-name>
--initial-branch=<branch-name> 为新创建的存储库中的初始分支使用指定的名称。如果未指定,则使用默认名称,名称可以通过init.defaultBranch配置变量自定义
--shared[=(false|true|umask|group|all|world|everybody|<perm>)] 指定Git存储库要在多个用户之间共享。这允许属于同一组的用户推送到该存储库。指定时,设置配置变量“core.sharedRepository”,以便使用请求的权限创建$GIT_DIR下的文件和目录。未指定时,Git将使用umask权限
示例:
$ pwd
/d/VSCode/testinit
## 初始化仓库 a
$ git init a
Initialized empty Git repository in D:/VSCode/testinit/a/.git/
$ ls a/.git/
HEAD config description hooks/ info/ objects/ refs/
## -q 只打印错误和警告信息;所有其他输出将被抑制。
$ git init a
Reinitialized existing Git repository in D:/VSCode/testinit/a/.git/
$ git init a -q
## 创建裸存储库,仓库信息直接就在文件夹 b 内
$ git init --bare b
Initialized empty Git repository in D:/VSCode/testinit/b/
$ ls b
HEAD config description hooks/ info/ objects/ refs/
## --object-format 指定存储库的给定对象格式(哈希算法)
$ git init --object-format=sha256 a
fatal: attempt to reinitialize repository with different hash
$ git init --object-format=sha256 c
Initialized empty Git repository in D:/VSCode/testinit/c/.git/
$ cat c/.git/config |grep 'objectfo'
objectformat = sha256
## --template=<template-directory> 指定将使用模板的目录
## 在裸库 b 中添加一个文件,然后再使用 b 库作为模板,重新初始化 a 库
$ echo 'customer template file conent' > b/myself
$ git init a --template=b
$ cat a/.git/myself
customer template file conent
## --separate-git-dir=<git-dir> 分离现有的Git库
### 从现有的 a 库中分离出一个裸库 d
$ git init --separate-git-dir=d a
$ ls d
HEAD config description hooks/ info/ myself objects/ refs/
## -b <branch-name> --initial-branch=<branch-name> 为新创建的存储库中的初始分支使用指定的名称
$ git init e -b main
Initialized empty Git repository in D:/VSCode/testinit/e/.git/
$ cat e/.git/HEAD
ref: refs/heads/main