当您再次发出git init
时,现有的git仓库会发生什么?
我用git init
创建了一个仓库。创建了一个文件,添加,提交。检查状态(没有提交)。然后创建了另一个文件,检查状态,我可以看到它如预期的那样未被跟踪。
然后,我又错误地运行了git init
,得到了 * Reinitialize existing Git repository message*。
尝试了git status
,但它显示相同。那么到底发生了什么?
用这种方式重新初始化一个现有的git仓库是有害的还是有益的?为什么我们可以在一个现有的仓库中使用git init
?
3条答案
按热度按时间ttp71kqs1#
在git docs中:
在现有的仓库中运行git init是安全的。它不会覆盖已经存在的东西。重新运行git init的主要原因是选择新添加的模板。
xytpbqjk2#
这在
git init
文档中有描述:在现有仓库中运行 git init 是安全的。它不会覆盖已经存在的东西。重新运行 git init 的主要原因是获取新添加的模板。
r8xiu3jd3#
从v1.7.5(b57fb80a7)开始,现有repo中的
git init
也允许移动.git
目录:重新运行'git init'的主要原因是获取新添加的模板(或者如果给定了--separate-git-dir,则将仓库移动到另一个位置)。
'Picking up newly-added templates'意味着任何尚未从template目录复制的模板现在将被复制到现有的git目录中。
“Moving the repository to another place”意味着,如果
--separate-git-dir
指向其他地方,现有的.git
目录将被移动到那里,并被一个链接替换。