git 中缺少一个文件夹并作为文件推送

One folder is missing in git and pushed as a file

我尝试了很多方法来将我的项目从 intellij 推送到 Bitbucket。我必须插入两个屏幕截图来解释问题所在:一切都很好地推送,但文件夹“frontend”作为文件推送。

我确实强制推送,并尝试删除存储库并重试,但没有任何效果。知道我做错了什么吗?

该图标及其旁边的哈希 ID 表示您拥有的根本不是文件。 (而且,Git 不 存储 文件夹,所以它也不是文件夹。)它是什么,就是 Git 所说的 gitlink。 gitlink 是子模块的内部部分,它告诉超级项目哪个 commit 离开子模块。

子模块本身就是另一个 Git 存储库。这意味着在克隆超级项目之后,您还必须 git clone 子模块存储库。让 Git 自行执行此操作的指令存储在名为 .gitmodules 的已提交文件中。如果缺少 .gitmodules 文件——如您的屏幕截图所示,如果它们是完整的——那么 Git 本身不能为您 git clone 子模块。我喜欢称其为损坏的子模块,有时也称其为 half-assed 子模块。要修复它,您必须提供另一半的屁股:克隆适当的 Git 存储库。 (然后将说明也放入 .gitmodules 文件中,以便下次完全评估。)

如果您不需要子模块,请不要使用 gitlink。要使 Git 不使用 gitlink,请确保您没有尝试将存储库添加到存储库:Git 字面意思 can't 这样做,所以它创建了一个 gitlink。