Git:将子模块更新为最新版本

Git:将子模块更新为最新版本,git,git-submodules,Git,Git Submodules,我有一个git项目,我们称之为“a”,它有一个子模块,我们称之为“B”。我一直在遵循stackoverflow的指南和这里的所有问题,但我似乎无法让项目“A”更改项目“B”的提交引用。我需要帮助找出我做错了什么。以下是命令输入/输出序列的示例: A $> git status # On branch company nothing to commit (working directory clean) A $> cd 'B' B $> git pull origin maste

我有一个git项目,我们称之为“a”,它有一个子模块,我们称之为“B”。我一直在遵循stackoverflow的指南和这里的所有问题,但我似乎无法让项目“A”更改项目“B”的提交引用。我需要帮助找出我做错了什么。以下是命令输入/输出序列的示例:

A $> git status
# On branch company
nothing to commit (working directory clean)
A $> cd 'B'
B $> git pull origin master
From https://github.com/company/B
 * branch            master     -> FETCH_HEAD
Updating bfab259..04e69cf
Fast-forward
 Capfile                                            |   45 ++++++++---
 Gemfile                                            |    3 +-
 Rakefile                                           |   86 +++++++++++++------
 config/deploy.rb                                   |   15 +++-
 config/dev.properties                              |    3 -
 config/local.properties                            |   45 ++---------
 config/prod.properties                             |   44 ----------
 config/production.properties                       |   15 ++++
 config/staging.properties                          |   44 ++--------
 config/company.properties                          |   41 ---------
 config/company_test.properties                     |   48 -----------
 .../kafka/producers/Manager.java                   |   33 ++++++--
 .../kafka/producers/http/SysomosClient.java        |    4 +-
 13 files changed, 164 insertions(+), 262 deletions(-)
 delete mode 100644 config/dev.properties
 delete mode 100644 config/prod.properties
 create mode 100644 config/production.properties
 delete mode 100644 config/company.properties
 delete mode 100644 config/company_test.properties
B $> cd ..
A $> git submodule update
Submodule path 'infochimps-deploy': checked out 'bfab2595257ea01722566495997376c47794a5ee'
A $> git commit -a -m "Updated submodule"
# On branch company
nothing to commit (working directory clean)
很明显,我能够将新代码拉入子模块,但是每次我更新子模块时,它仍然会报告旧的哈希(bfab2595257ea01722566495997376c47794a5ee),并且当我在更新git告诉我没有要提交的内容之后尝试提交时


我对git不是很有经验,需要一些帮助来找出我做错了什么。感谢您的帮助。

git子模块更新
用于使模块与存储库中的版本保持最新

为了从本机子模块repo、cd到子模块目录更新到最新版本,请拉入并提交

要更新所有子模块,可以执行以下操作:

git submodule foreach git pull

在提取最新代码后,我尝试在子模块目录中提交(以与原始帖子显示的相同方式完成),然后尝试在子模块目录中提交。我仍然收到“无需提交”消息。@NeedsHelp请在原始问题中添加确切步骤。您确定要从子模块目录中提取吗?我能做的最好的事情就是在运行git diff:A$>git diff diff--git A/deploy b/deploy index bfab259..04e69cf 160000--A/deploy++b/deploy@@@1+1@@@Subproject commit BFAB2595257EA0172256649976C47794A5EE+Subproject commit 04E69CFDE94BE1F94A12FD52C7BB24A155E344 I获取该响应,当我尝试更新子模块以将其移动到新的提交哈希时,它会将提交哈希返回到旧的提交哈希bfab25….
git submodule update
不会将子模块作为单独的项目更新到子模块的当前版本,而是指向子模块repo中的特定提交。请精确地尝试原始答案中的步骤。谢谢,好的。我终于明白了。我确实对“子模块更新”命令的工作原理有一些误解。我在运行“pull”命令后未能提交,因此,当我运行“update”时,它将我恢复为旧哈希。谢谢你的帮助。