如何将更改还原为GIT子模块?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我有一个git子模块(RestKit),我已经添加到我的回购。

我不小心改变了一些文件,我想回到源代码版本。为了做到这一点,我试图跑步

Mac:app-ios user$ git submodule update RestKit

但正如你在这里看到的,这不起作用,因为它仍然是“修改内容”:

Mac:app-ios user$ git status
...
#   modified:   RestKit (modified content)

甚至

Mac:app-ios user$ git submodule update -f RestKit 

不会恢复本地修改的文件。 如何重置该子模块的内容?

提问于
用户回答回答于

移动到子模块的目录中,然后执行git reset --hard以将所有已修改的文件重置为其最后提交状态。请注意,这将丢弃所有未提交的更改。

用户回答回答于

如果你想为所有子模块执行此操作,而无需更改目录,则可以执行

git submodule foreach git reset --hard

你也可以使用递归标志来应用于所有子模块:

git submodule foreach --recursive git reset --hard

扫码关注云+社区