'重新初始化'在git中意味着/实际上做了什么?

时间:2015-01-26 12:37:12

标签: git git-init

我在下面找到了一个相关的问题,但无法理解'选择新添加的模板',似乎在最新http://git-scm.com/docs/git-init

中删除了此解释

Does running git init twice initialize a repository or reinitialize an existing repo?

  

在现有存储库中运行git init是安全的。它不会   覆盖已存在的东西。主要原因   重新运行git init是为了获取新添加的模板。

我只是不知道会重新初始化会做什么,希望有人可以解释它的细节,非常感谢:)

1 个答案:

答案 0 :(得分:1)

同样git init documentation对模板有这个说法:

  

模板目录

     

模板目录包含将在创建后复制到$GIT_DIR的文件和目录。

     

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

     
      
  • 使用--template选项提供的参数;

  •   
  • $GIT_TEMPLATE_DIR环境变量的内容;

  •   
  • init.templatedir配置变量;或

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

  •   
     

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

因此,如果您已手动更改/usr/share/git-core/templates中的文件,或者可能已升级到不同模板附带的新版Git,则重新初始化会将这些新文件复制到现有存储库中。

该文档还提出了重新初始化的另一个原因:

  

如果给出--separate-git-dir,则将存储库移动到另一个地方

后来:

  

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

     

不是将存储库初始化为$GIT_DIR./.git/的目录,而是创建一个包含实际存储库路径的文本文件。此文件充当与文件系统无关的Git符号链接到存储库。

     

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