git错误:“未暂存未提交的更改:”

时间:2019-02-22 13:01:50

标签: git bitbucket

我正在尝试将数据推送到我的Bitbucket存储库,并且不断出现错误:更改未上演提交。

我使用git add .在项目中添加所有文件。

然后我使用git commit -m "..."

我仍然收到此错误:

    On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
        modified:   src/modules/paypal (new commits)

no changes added to commit

我尝试使用以下问题中建议的解决方案,但是它没有用,因为如果我回到原始项目位置并尝试将其推送,我仍然会收到相同的错误,并且如果我尝试从src推送它/ modules / paypal我收到一条消息,询问我的git用户名和密码,但是我的存储库位于bitbucket中,因此显然无法正常工作。

Git error: Changes not staged for commit

有人可以解决这个问题吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

这里的问题是您实际上没有进行任何更改。 :)

src/modules/paypal是一个子模块,即映射到您的主存储库中的单独Git存储库。这些工作流程略有不同-您不能只将子模块内的更改提交到主存储库中。它的工作原理如下:

  1. 将更改提交到所包含的存储库中,最好是在该子存储库的单独克隆中
  2. 推送它们,以便您可以在主存储库中获取新版本
  3. 更新主存储库中的子模块(例如,通过在其内部拉动)
  4. 更新主存储库以指向子模块的不同版本:git add src/modules/paypal(您更新子模块引用,而不是其内容!)
  5. 提交

很明显,此过程仅在您控制所包含回购的原始位置时才有效-如果您不这样做,则过程将变得更加复杂。

在您的情况下,您在子模块中有新的本地提交,从理论上讲,这意味着您可以直接转到上面列表中的第4步,但是除非这些新的提交存在于子模块的上游位置,否则其他人都将尝试更新其主仓库的副本将无法更新其子模块。