运行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
目录将被移动到那里,并被一个链接所取代。