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


posted @ 2023-02-12 20:26  菜阿  阅读(192)  评论(0编辑  收藏  举报