3

我在下面找到了一个相关的问题,但无法理解“选择新添加的模板”,并且似乎这个解释在最新的http://git-scm.com/docs/git-init中被删除了

运行 git init 两次是初始化存储库还是重新初始化现有存储库?

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

我只是不知道 reinitialize 实际上会做什么,希望有人能详细解释一下,非常感谢:)

4

1 回答 1

2

相同的git init文档对模板有这样的说法:

模板目录

模板目录包含$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 符号链接到存储库。

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

于 2015-01-26T13:34:17.647 回答