如何更新包含子模块的git仓库?

5

一段时间后,我想更新我的git仓库,但是出了些问题。如何正确地解决这种情况?

mblsha@siruba:~/src/psi/ $ git status
iris: needs merge
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   src/common.cpp
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#   unmerged:   iris
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   gupdate.sh
mblsha@siruba:~/src/psi/ $ git submodule status
+cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master)
+cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master)
+cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master)
mblsha@siruba:~/src/psi/ $ cd iris 
mblsha@siruba:~/src/psi/iris/ $ cat .git/HEAD 
cf237ef8f3d9dc058dbde47e6973e6388608ce60
2个回答

5

在涉及到Git子模块时,你几乎可以通过以下方式解决遇到的任何问题:

1. deleting the submodule (rm -r iris)
2. recreating it again (git submodule update)

显然,如果你对子模块进行了本地更改,这将永久删除它们,因此如果你有本地更改,请确保先提交它们。

1
有趣的是,我尝试过了,但并没有真正帮助,它仍然说“iris”未合并,即使我已经从头开始更新了它。最令人惊奇的是,在“git add iris”之后,问题消失了。 - mblsha

3

我在stackoverflow上发布了一个类似的问题,最终我自己回答了它,但我发现使用git reset HEAD iris可以解决我的子模块冲突问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接