为什么 "git status" 显示太多未跟踪的文件?

Why does "git status" show way too much untracked files?

答案在最下方

我试图在 git_test2 目录中查看我的文件 status,该目录包含 3 个名为 test1.txttest2.txttest3.txt 的文件。

这是我在终端中输入的内容:

cd Desktop
cd git_test2
git status

git status 命令之前一切正常。它应该只显示 3 个未跟踪的文件,但我从终端得到了这个文本:

On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

new file:   ../../AndroidStudioProjects/Sunshine/app/src/main/res/layout/list_item_forecast.xml
new file:   ../../Library/Preferences/AndroidStudio1.2/options/fileEditorProviderManager.xml
new file:   ../../Library/Preferences/AndroidStudio1.2/options/git.xml
new file:   ../../Library/Preferences/AndroidStudio1.2/options/other.xml
new file:   ../../Library/Preferences/AndroidStudio1.2/options/runner.layout.xml

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

modified:   ../../AndroidStudioProjects/Sunshine/app/src/main/res/layout/list_item_forecast.xml
modified:   ../../Library/Preferences/AndroidStudio1.2/options/runner.layout.xml

Untracked files:
  (use "git add <file>..." to include in what will be committed)

../../.CFUserTextEncoding
../../.Rsupport/

在最后一行之后还有很多行和最后一行一样(红色)

刚查到原因: 我需要做的就是 git init,现在它显示的正是我所期望的。谢谢大家!

嗯,我看起来有点像你的 .git 文件夹不在你的产品中,但我上面有几个文件夹。然后,当您在您的项目中并设置 git 状态时,您会看到 ../../,这意味着您处于 Git 存储库的第二层。

也许您应该再次克隆该存储库并检查您的 git 结构。

如您所见,文件路径以 ../.. 开头。 Git status 总是显示 all 当前 repositroty 中的更改,而不仅仅是当前目录中的更改。如您所见,它实际上显示了存储库中的更改,其中您至少有 2 个文件夹深。但是没有文件 test1.txt.

因此,请检查 pwd 您是否在正确的目录中(也许您当前在另一个存储库中)。

为什么有这么多文件?

git 存储库只是位于项目目录中的 .git/ 目录(文件夹)。像这样:myproject/.git/.

如果您的当前目录中没有 git 存储库,git 会在父目录中搜索,然后在父目录中搜索,直到顶部

由于您的路径是 /Users/ishayfrenkel1/Desktop/git_test2,因此该路径中的某处应该有一个 git 存储库。

new file:   ../../Library/Preferences/AndroidStudio1.2/options/git.xml

新文件的路径至少比 /Library 高两级(/Library/Users/ishayfrenkel1/Library)。这意味着您已经启动了一个 git 存储库:

  • 在您的主目录中:~/、OSX 上的 /Users/<username>/ 或 Linux 上的 /home/<username>
  • 或在根目录中,/,所有目录的父目录。

它是怎么发生的。

很可能您打开了终端并输入了 git init。默认情况下,终端在您的主目录中打开,这是创建新存储库的位置。

现在做什么。

搜索并删除。以下命令之一应该 运行 没有错误。它就在那里!

ls /.git
ls ~/.git

现在使用

删除存储库
rm -rf ~/.git