【问题标题】:How do I fetch/re-push a submodule in git?如何在 git 中获取/重新推送子模块?
【发布时间】:2016-06-03 11:14:01
【问题描述】:

在我的 git 存储库 (Bitbucket) 中,我引用了一个子项目。

当我首先推送它时,包含了一个 .git/ 文件夹(尽管我仅将存储库用于备份,因此实际上并不需要)。

现在我在存储库中有一个对该子模块的引用

 <folder_name> → <SHA> [<SHA>])
  • 当我执行 git pull origin master 时,如果提取了文件夹,但它是空的。
  • 当我尝试将内容放入该文件夹时(我将其删除,然后我从不同的存储库中将其拉出,然后删除 .git/ 文件夹以使其看起来像一个普通文件夹,而不是子模块)然后 混帐添加。 && git commit -m ".." && git push origin master 我只得到一切都是最新的,当然远程存储库中没有任何变化

目标:将过去的子模块推送为主存储库的普通文件夹部分。

我错过了什么?子模块是如何工作的?(文档@Github 对我来说不是很清楚)

【问题讨论】:

    标签: git bitbucket


    【解决方案1】:

    正如我今天早上在“How to solve this Git issue?”中解释的那样,这个(即“&lt;folder_name&gt; → &lt;SHA&gt; [&lt;SHA&gt;]”)不是子模块。

    一个子模块由以下部分组成:

    如果你只记录 SHA1,而不记录 url,你会得到类似的东西:

    git clone --recursive 将无法使用该 SHA1 克隆存储库,因为它不知道其 url。

    如果要将子项目作为子模块引用:

    【讨论】:

    • 所以基本上这只是一个我不能再做任何事情的文件夹?
    • 另外,尽管我将另一个存储库克隆到我的存储库并确保将其删除,但 git diff 没有显示任何更改。 git/ 文件夹(所以基本上它应该被视为一个普通文件夹)?
    • 是的,我在之前的回答中解释了如何摆脱它并用实际的子文件夹替换它。
    猜你喜欢
    • 1970-01-01
    • 2019-02-22
    • 2014-07-31
    • 2015-05-28
    • 2014-11-03
    • 2021-03-08
    • 2017-10-05
    • 2021-01-31
    • 2015-07-07
    相关资源
    最近更新 更多