为什么我必须在`git clone`之后运行`git init`?

时间:2018-07-25 19:57:24

标签: github

我们有一个GitHub存储库。克隆该存储库后,必须在所有Git命令生效之前从命令行执行git initgit pullgit checkout等无效。

据我所知,git init初始化了一个新的存储库。就像克隆后我会再次创建一个新的存储库吗?

以下是我要运行的命令:

git clone <url>
git checkout master

2 个答案:

答案 0 :(得分:1)

在这种情况下,您不必要做git init¹。正如评论中指出的那样,git clone将为您提供一个本地存储库,您可以立即开始使用它。

问题在于,当您尝试运行Git命令时,您不在存储库中。默认情况下,git clone将存储库放入与克隆的存储库同名的子目录中。您必须进入该目录才能使用它:

git clone git@github.com/foo/bar.git
cd bar

现在您位于bar/,可以与您的存储库进行交互。


¹如果您确实在父目录中运行git init,那么您将处于混乱状态。您最终将在错误的位置放置一个存储库,并在其中包含代码。 Git的嵌套存储库行为常常与用户的期望不符。

答案 1 :(得分:1)

克隆后,通过`cd your-project'进入项目根目录,然后运行git命令

在您的情况下,您克隆了远程存储库,然后没有将当前的工作目录更改为克隆的项目,因为您位于克隆存储库的父目录中,因为父存储库本身不是git存储库git抱怨,你不能运行任何git命令