Github无法检测到新文件夹。

27

我正在使用连接到远程bitbucket git的Github Windows客户端。最近,我在/mobile目录下开始构建我的应用程序的移动版本。

我一直在localhost/WEBSITENAME上工作,但现在已经切换到localhost/WEBSITENAME/mobile,并将git存储库文件夹设置为WEBSITENAME文件夹。

创建新文件夹后,Github无法检测到新文件夹,导致我无法推送新文件。


3
在推送之前,你需要添加它们吗?可以使用命令 git add --all - meda
我尝试执行 git add --all 命令,但返回错误信息 fatal: not a git repository mobile/extensions/gqt.bars/iscroll/../../../.git/moduels/iscroll - Dustin Snider
请提供更多信息。您是从远程克隆的存储库吗?这是一个新的存储库吗?您的存储库根目录是什么? - Maic López Sáenz
我将存储库从Bitbucket克隆到Github for Windows中。几天来一直在上面工作,提交也没有问题。如果我修改根目录下的文件,即C:\xampp\htdocs\mab,则没有问题。 我创建了C:\xampp\htdocs\mab\mobile,因为我在本地克隆了它。 我想提交\mobile文件夹中的所有内容,但它不会出现或让我推送它。 - Dustin Snider
7个回答

77

Git会忽略空文件夹。请确保在Git仓库中新文件夹中至少存在一个文件,否则您将无法将其添加。


9
该文件夹中有多个文件。 - Dustin Snider

21
如果你的目录结构看起来像这样:

If your directory structure looks like this:

/------WebsiteName/
        |
        |-----------/Mobile/

确保您在WebsiteName目录下,然后运行git status

如果仍然出现相同的错误,请按顺序执行以下操作:

git init
git status //here you should see the mobile folder and its files
git add --all
git commit -am "committing"
git push --all

谢谢,下次我有新文件夹时会尝试这个。 - Dustin Snider
1
我在使用Eclipse时遇到了与Kara类似的问题,您的解决方案帮助了我。谢谢。 - Carlos
2
我也遇到了同样的问题。但是 git status 没有识别到文件夹和它的文件。而且也没有任何 .gitignore 文件。@meda - Somnath Muluk
执行 git add . 然后再次执行 git status - meda
2
可怕的建议——之后我能够添加/提交,但是当我尝试推送时出现错误:“致命错误:'origin'似乎不是git仓库”。 - Dexygen
你需要运行 git init。我的答案是正确的,你做错了什么。 - meda

10

确保在你要添加的特定文件夹或文件或其扩展名被阻止的位置,该文件夹中没有任何 .gitignore 文件。


1
非常被低估的答案。这解决了我的问题,谢谢! - Espin
对于我来说,这并没有解决问题。 - Vladimir Despotovic
还要检查一下你的文件夹上几个层级。例如,在我的情况下,我有一个文件夹在repo > folder1 > folder2 > folder3。在folder3中,我有一个.gitignore文件,但是找不到任何可能导致这个问题的东西,然后我意识到在folder1层级上有一个.gitignore文件,其中包含了导致我丢失文件夹的排除项。 - undefined

7
在这种情况下,您应该检查是否在您的.gitignore文件中放置了“/mobile”。或者,@meda提供的解决方案也可以解决问题。

0

我曾经遇到过同样的问题

虽然我没有找到问题的根源,但我找到了解决方法。

  1. 首先,复制本地 MOBILE 文件夹并将其删除。

  2. 在互联网浏览器中打开您的 git。

  3. 进入您的 WEBSITENAME 目录。

  4. 在用户界面中找到“创建新目录”按钮并创建 MOBILE 目录。

    此操作将作为当前 git 分支的新提交推送。

  5. 在本地运行 git pull 命令,并查看已创建的目录

  6. 将旧的 MOBILE 目录复制到新目录中。

  7. 运行 git status 命令,您会发现一切都很正常

希望对您有所帮助。 :)


0

我遇到了同样的问题,后来发现是由于文件.gitignore中的内容引起的。内容如下:"# created automatically /n *"。而致命的问题是"*":它意味着你忽略了这个仓库中的所有编码文件,所以$git status无法检测到编码文件。只需删除.gitignore中的"*"即可解决。


0

对我来说,它是错误的代码库。因此,请进行一些小修改,推送代码库并检查最后一次更新是否在几分钟前。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接