问题描述
我正在尝试以编程方式使用带有子模块的Git存储库。
请澄清一下,这不是一个简单的克隆,我正在使用递归模式进行完整的克隆。
主项目始终在分离的头部中检出,具体取决于在运行时使用git递归克隆提供给用户SHA的用户。
问题在于子模块由于某种原因未更新。例如,在子模块文件夹中的df[df['Brand'] == i]
中,我确实看到了来自超级项目的提交,但是文件尚未更新。
这是我使用的命令
df[df['Brand'] == i].groupby('State')['Price'].sum()
我也尝试了默认的git log
选项,但是没有用。任何想法如何保证将子模块更新到提交SHA超级项目都指向它,并确保文件已更新。也许我缺少明显的东西。
Git在本地登录子模块项目的存储库
但是,如果我在服务器上打开更改的文件,则该文件尚未更新以反映此提交中的更改。
解决方法
不幸的是,这对我来说是一个愚蠢的错误。当从另一个文件夹中以编程方式执行子模块更新命令时,我使用的是-C <path>
选项,而不是使用--git-dir <path>
选项。因此,子模块从未更新,也没有任何错误。
毕竟与子模块无关
命令错误
git --git-dir <PATH-TO-REPO-FOLDER>.git submodule update --init --recursive --force
更正的命令
git -C <PATH-TO-REPO-FOLDER> submodule update --init --recursive --force