0

我有一个 git 项目,我们称之为“A”,它有一个子模块,我们称之为“B”。我一直在遵循http://git-scm.com/book/en/Git-Tools-Submodules的指南以及 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 不是很有经验,可以使用一些帮助来找出我做错了什么。谢谢您的帮助。

4

1 回答 1

2

git submodule update用于使模块与存储库中的版本保持同步。

为了从本地子模块 repo 更新到最新版本,cd 到子模块目录,拉取并提交。

要使所有子模块保持最新,您可以执行以下操作:

git submodule foreach git pull
于 2013-06-17T16:04:19.593 回答