运行git init是否会初始化一个版本库或重新初始化一个现有的版本库?

当你再次发出git init时,现有的git仓库会发生什么?

我用git init创build了一个仓库。 创build一个文件,添加,提交。 检查状态(没有提交)。 然后创build另一个文件,检查状态,我可以看到它没有跟踪预期。

然后,错误地说,我再次运行git init ,然后重新初始化现有的Git存储库消息

尝试git status ,但它显示相同。 那么究竟发生了什么?

这样可以重新初始化一个现有的git仓库有害或有帮助吗? 为什么我们可以在现有的仓库中git init

从git 文档 :

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

这在git init文档中有描述:

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

从v1.7.5( b57fb80a7 )开始,现有的仓库中的 git init也允许移动.git目录:

重新运行“git init”的主要原因是拾取新添加的模板(或者在给出–separate-git-dir的情况下将存储库移动到另一个位置)。

“拾取新添加的模板”意味着任何尚未从模板目录中复制的模板都将被复制到现有的git目录中。

“将版本库移到另一个地方”意味着,如果--separate-git-dir指向其他地方,那么现有的.git目录将被移动到那里,并被一个链接所取代。