• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • git init

    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,则将其设置为当前工作目录。


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

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

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


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

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

    • --shared未指定值,或者--shared=false,或者--shared=umask时,Git 将使用 umask 报告的权限。umaskfalse是默认值。
    • --shared=group,或者--shared=true时,使存储库的所属组,具有可写权限,相当于所属组添加权限:g + sx,因为 Git 组可能不是所有用户的主要组。这用于放宽其他安全的 umask 值的权限。请注意,umask 仍然适用于其他权限位(例如,如果 umask 是 0022,使用 group 不会从其他(非组)用户删除读取权限)。请参阅0xxx如何准确指定存储库权限。
    • --shared=all:或者--shared=world,或者--shared=everybody时,使用所属组和其他用户,都具有可写权限,使存储库可供所有用户阅读。
    • --shared=0xxx:是一个八进制数,每个文件都有模式 0xxx。0xxx 将覆盖用户的 umask 的值(不仅是松开的权限 group 和 all 一样)。0640 将创建一个群组可读的存储库,但不能对其他群组进行写入或访问。0660 将创建一个对当前用户和组可读可写的回购,但其他人无法访问。

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

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


    --template=<template_directory>

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

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

    1. --template选项一起提供的数据。
    2. $GIT_TEMPLATE_DIR环境变量的内容。
    3. init.templateDir配置变量。
    4. /usr/share/git-core/templates,默认模板目录。默认模板目录包含一些目录结构,建议使用“排除模式”(参见 gitignore[5])和示例钩子文件。示例钩子默认情况下都是禁用的,要启用其中一个示例钩子,可以通过删除其.sample后缀来对其进行重命名。

    5. 示例

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

      $ cd /path/to/my/codebase
      $ git init      (1)
      $ git add .     (2)
      $ git commit    (3)
      
      1. 创建一个/path/to/my/codebase/.git目录。
      2. 将所有现有文件添加到索引。
      3. 将原始状态记录为历史记录中的第一个提交。

    上篇:git config

    下篇:git clone