Через некоторое время я хотел обновить репозиторий 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
Когда дело доходит до подмодулей git, почти любую проблему, с которой вы сталкиваетесь, можно решить следующим образом:
1. deleting the submodule (rm -r iris)
2. recreating it again (git submodule update)
Очевидно, что если вы внесли локальные изменения в свой подмодуль, это УДАЛЯЕТ их ПОСТОЯННО, поэтому, если у вас есть локальные изменения, сначала убедитесь, что вы их внесли.
Я разместил аналогичный вопрос здесь, в stackoverflow, и в конечном итоге сам ответил на него, но я обнаружил, что использование git reset HEAD iris
сработало для моей проблемы с конфликтами подмодулей.
Интересно, что я пробовал и не особо помог, он все равно сказал, что iris не объединен после того, как я обновил его с нуля. И, что самое удивительное, проблема исчезла после "git add iris".