目录搜索
GuidesgitattributesgiteverydaygitglossarygitignoregitmodulesgitrevisionsgittutorialgitworkflowsAdministrationgit archivegit bundlegit cleangit filter-branchgit fsckgit gcgit instawebgit reflogBasic Snapshottinggit addgit commitgit diffgit mvgit resetgit rmgit statusBranching and Merginggit branchgit checkoutgit loggit mergegit mergetoolgit stashgit tagDebugginggit bisectgit blamegit grepEmailgit amgit format-patchgit request-pullgit send-emailExternal Systemsgit fast-importgit svnGetting and Creating Projectsgit clonegit initGitgit annotategit archimportgit bisect-lk2009git check-attrgit check-mailmapgit check-ref-formatgit checkout-indexgit cherrygit citoolgit columngit credentialgit credential-cachegit credential-storegit cvsexportcommitgit cvsimportgit cvsservergit diff-filesgit diff-treegit difftoolgit fast-exportgit fetch-packgit fmt-merge-msggit get-tar-commit-idgit guigit http-backendgit http-fetchgit http-pushgit imap-sendgit index-packgit interpret-trailersgit ls-remotegit ls-treegit mailinfogit mailsplitgit merge-filegit merge-indexgit merge-one-filegit merge-treegit mktaggit mktreegit name-revgit notesgit p4git pack-objectsgit pack-redundantgit pack-refsgit parse-remotegit patch-idgit prunegit prune-packedgit quiltimportgit receive-packgit remote-extgit remote-fdgit remote-testgitgit repackgit replacegit rereregit send-packgit sh-i18ngit sh-setupgit shellgit show-branchgit show-indexgit stripspacegit unpack-filegit unpack-objectsgit upload-archivegit upload-packgit vargit verify-commitgit verify-taggit whatchangedgit worktreeInspection and Comparisongit describegit shortloggit showMiscellaneousapi credentialsapi indexgitcligitcore tutorialgitcredentialsgitcvs migrationgitdiffcoregithooksgitkgitnamespacesgitremote helpersgitrepository layoutgitsubmodulesgittutorial 2gitwebgitweb.confpack formatUser ManualPatchinggit applygit cherry-pickgit rebasegit revertPlumbing Commandsgit cat-filegit check-ignoregit commit-treegit count-objectsgit diff-indexgit for-each-refgit hash-objectgit ls-filesgit merge-basegit read-treegit rev-listgit rev-parsegit show-refgit symbolic-refgit update-indexgit update-refgit verify-packgit write-treeServer Admingit daemongit update-server-infoSetup and Configgitgit configgit helpSharing and Updating Projectsgit fetchgit pullgit pushgit remotegit submodule
文字

名称

git-init  - 创建一个空的 Git 仓库或重新初始化一个现有仓库

概要

git init [-q | --quiet] [--bare] [--template=<template_directory>]          [--separate-git-dir <git dir>]          [--shared[=<permissions>]] [directory]

描述

此命令创建一个空的 Git 仓库-基本上是一个.git与子目录的目录objectsrefs/headsrefs/tags,和模板文件。HEAD还创建了引用主分支的 HEAD 的初始文件。

如果$GIT_DIR设置了环境变量,那么它将指定一个要使用的路径,而不是./.git存储库的基础。

如果通过$GIT_OBJECT_DIRECTORY环境变量指定了对象存储目录,则在下面创建sha1目录 - 否则使用默认$GIT_DIR/objects目录。

在现有的存储库中运行是git init安全的。它不会覆盖已经存在的东西。重新运行git init的主要原因是拾取新添加的模板(或者如果给出--separate-git-dir,则将存储库移动到另一个位置)。

选项

-q   --quiet

仅打印错误和警告消息;所有其他输出将被抑制。

--bare

创建一个裸仓库。如果GIT_DIR未设置环境,则将其设置为当前工作目录。

--template=<template_directory>

指定将使用模板的目录。(请参阅下面的“模板目录”部分。)

--separate-git-dir=<git dir>

相反,初始化存储库作为目录之一$GIT_DIR或者./.git/,创建一个包含路径的实际存储库的文本文件存在。该文件充当文件系统不可知的 Git 与存储库的符号链接。

如果这是重新初始化,存储库将被移动到指定的路径。

--shared=(false|true|umask|group|all|world|everybody|0xxx)

指定 Git 存储库将在多个用户之间共享。这允许属于同一组的用户推入该存储库。指定时,将设置配置变量“core.sharedRepository”,以便$GIT_DIR使用请求的权限创建下面的文件和目录。未指定时,Git 将使用 umask(2)报告的权限。

该选项可以具有以下值,如果group没有给定的值,则默认为:

umask (or false)

使用由 umask(2)报告的权限。--shared未指定时的默认值。

group (or true)

使存储库组可写,(和g + sx,因为 git 组可能不是所有用户的主要组)。这用于放宽其他安全的 umask(2)值的权限。请注意,umask 仍然适用于其他权限位(例如,如果 umask 是0022,使用group不会从其他(非组)用户删除读取权限)。请参阅0xxx如何准确指定存储库权限。

all (or world or everybody)

与此相同group,但使存储库可供所有用户阅读。

0xxx

0xxx是一个八进制数,每个文件都有模式0xxx0xxx将覆盖用户的 umask(2)的值(不仅是松开的权限groupall一样)。0640将创建一个群组可读的存储库,但不能对其他群组进行写入或访问。0660将创建一个对当前用户和组可读可写的回购,但其他人无法访问。

默认情况下,配置标志receive.denyNonFastForwards在共享存储库中启用,以便您不能强制进行非快速转发。

如果你提供了一个directory,那么这个命令就在里面运行。如果这个目录不存在,它将被创建。

模板目录

模板目录中名称不以点开头的文件和目录将$GIT_DIR在其创建后复制到其中。

模板目录将是以下内容之一(按顺序):

  • --template选项一起提供的论据;

  • $GIT_TEMPLATE_DIR环境变量的内容;

  • 所述init.templateDir配置变量;要么

  • 默认模板目录:/usr/share/git-core/templates

默认模板目录包含一些目录结构,建议使用“排除模式”(参见 gitignore [5])和示例钩子文件。

示例钩子默认情况下都是禁用的,要启用其中一个示例钩子,可以通过删除其.sample后缀来对其进行重命名。

有关钩子执行的更多信息,请参阅 githooks [5]。

示例

为现有的代码库启动一个新的 Git 存储库

$ cd /path/to/my/codebase
$ git init      (1)$ git add .     (2)$ git commit    (3)

1. 创建一个/path/to/my/codebase/.git目录。

2. 将所有现有文件添加到索引。

3. 将原始状态记录为历史记录中的第一个提交。

上一篇:下一篇: