我有一个git项目,我们称之为'A',它有一个子模块,我们称之为'B'。我一直在关注stackoverflow中的http://git-scm.com/book/en/Git-Tools-Submodules和所有问题的指南,但我似乎无法获得项目'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)
我显然能够将新代码拉入子模块,但是每当我更新子模块时,它仍会报告旧的哈希值(bfab2595257ea0172256649599997376c47794a5ee),当我尝试在更新后提交git告诉我没有任何内容承诺。
我对git不是很有经验,可以使用一些帮助来弄清楚我做错了什么。谢谢你的帮助。
答案 0 :(得分:2)
git submodule update
用于使模块与您的存储库中的版本保持同步。
为了从native submodule repo更新到最新版本,cd到submodule目录,拉取并提交。
要使所有子模块保持最新,您可以执行以下操作:
git submodule foreach git pull