Git没有';看不到新文件,只看到文件夹

Git没有';看不到新文件,只看到文件夹,git,file,commit,Git,File,Commit,在将包含一些新文件的文件夹添加到我的项目中并执行git状态时,git只告诉我有关该文件夹的信息,而不告诉我文件的信息。当我添加时,只添加了文件夹,没有添加任何文件;当我推拉时,只有文件夹而不是文件通过 我做错了什么?由于git只跟踪文件而不跟踪文件夹,因此推拉操作是不可能的。无法将空目录添加到git。 对于git status,这是预期的行为,因为文件夹中的所有文件都是新的,因为git尚未跟踪此文件夹中的任何文件 此外,请检查。如果在那里键入git status,您将看到此输出,尽管octofa

在将包含一些新文件的文件夹添加到我的项目中并执行git状态时,git只告诉我有关该文件夹的信息,而不告诉我文件的信息。当我添加时,只添加了文件夹,没有添加任何文件;当我推拉时,只有文件夹而不是文件通过


我做错了什么?

由于git只跟踪文件而不跟踪文件夹,因此推拉操作是不可能的。无法将空目录添加到git。
对于
git status
,这是预期的行为,因为文件夹中的所有文件都是新的,因为git尚未跟踪此文件夹中的任何文件

此外,请检查。如果在那里键入
git status
,您将看到此输出,尽管
octofamily
包含两个文件:

$ git statu­s
# On branch master
# Untracked files:
#   (use "­git add <file>..." to­ include i­n what wil­l be commi­tted)
#
# blue_octocat.txt
# octofamily/
# red_octocat.txt

请注意,它现在是如何显示
octofamily
中的文件的,因为现在该文件夹已知。

假设您有以下未跟踪的文件夹:

./fruits/
./fruits/apples.txt
./fruits/kiwis.txt
git status -u
如果要查看未跟踪文件夹中的文件:

./fruits/
./fruits/apples.txt
./fruits/kiwis.txt
git status -u
如果要暂存未跟踪的文件夹以及其中的文件,请执行以下操作:

git add fruits/

请注意,git现在将包含隐藏的
.git
文件夹的文件夹视为子模块。您可以通过这种方式检查它们,使文件夹内容可以作为单独的存储库访问,而父存储库中只存储了一个引用

1) 您可以保持这种方式,如果愿意,只需单独使用这两种回购协议,并通过参考链接

2) 如果保留文件夹内容的git历史记录并不重要,则删除其中的
.git
文件夹将导致正常git行为返回

3) 如果您想保留历史记录,可以使用
git子树
将分支复制到新回购中。这使得文件可以在本地编辑,并且历史记录仍然可以访问


以下命令将另一本地回购协议当前分支机构的内容和历史记录复制到您当前的本地分支机构中

git子树添加--prefix=[newFolderName][/path/to/other/repo]HEAD


(用您选择的名称和路径替换方括号中的部分)

尝试添加目录中的一个现有文件
git状态
,它会像往常一样显示那里的所有文件。这对我很有效。

在我的例子中,有一个.git目录文件夹隐藏在子目录中。删除它为我解决了问题。

您的文件是否与.gitignore文件中的模式匹配?不,这只是Daniel在下面所说的。这很奇怪,因为当我推拉到它时,我的站点上有一个空文件夹。但是,我如何开始跟踪文件夹中的文件呢?@JohanDahl:请查看更新。空文件夹确实很奇怪。好吧,那么我猜我的git状态没有问题。但我确实做了git add。还尝试了GitAdd-A和未添加的文件,至少GitStatus没有报告任何关于它们的信息。我最终通过进入文件夹并执行git add来识别它们。从那里开始。但这不应该从我的根文件夹(git项目所在的地方)起作用吗?@JohanDahl:是的,应该从根文件夹起作用,我只是在本地存储库中检查了它。我得承认,你的问题听起来有点奇怪。也许在git邮件列表上发布是个好主意。所描述的行为是我在添加子模块时看到的,子模块中文件的添加需要添加到子模块文件夹中,但从子模块外部只能看到文件夹本身。