运行git init是否会两次初始化存储库或重新初始化现有的存储库?


164

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

我使用创建了一个存储库git init。创建一个文件,添加,提交。检查状态(什么都不提交)。然后创建另一个文件,检查状态,我可以看到它未按预期进行跟踪。

然后,错误地说,我git init再次运行,然后得到Reinitialise现有的Git存储库消息

尝试过git status,但显示相同。那么到底发生了什么?

以这种方式重新初始化现有的git存储库会有害还是有用?为什么我们可以git init在现有存储库中?


FWIW使用Xcode中我第一次创建本地存储库一次,然后我去的时候Github.com创建一个新的远程仓库。我做了,然后将我的本地存储库链接到我的遥控器...我正在遵循它的步骤(在Github.com上提供),第一步是git init我做了。大概这是Xcode自动创建它之后的第二次
Honey

Answers:


208

从git docs

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


110

git init文档中对此进行了描述:

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


47

从v1.7.5(b57fb80a7)开始,git init在现有存储库中还允许移动.git目录:

重新运行'git init'的主要原因是选择新添加的模板(如果给定了--separate-git-dir,则将存储库移至另一个位置)。

“选择新添加的模板”意味着所有尚未从模板目录复制的模板都将被复制到现有的git目录中。

“将存储库移至另一个位置”意味着,如果--separate-git-dir指向其他位置,则现有.git目录将被移至该位置并被链接替换。


-1

这意味着您已经初始化了git。因为您已经从该路径在github上上传了文件。您检查路径,然后使用.git名称创建一个文件夹。这就是为什么您无需再次要求初始化git的原因。您可以直接进行下一步

git添加

Git文件夹

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.