2008-11-10 3 views
5

Через какое-то время я захотел обновить репозиторий git, а потом что-то пошло не так. Каков правильный выход из этой ситуации?Как обновить репозиторий git, содержащий подмодуль?

[email protected]:~/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 
[email protected]:~/src/psi/ $ git submodule status 
+cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master) 
+cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master) 
+cf237ef8f3d9dc058dbde47e6973e6388608ce60 iris (heads/master) 
[email protected]:~/src/psi/ $ cd iris 
[email protected]:~/src/psi/iris/ $ cat .git/HEAD 
cf237ef8f3d9dc058dbde47e6973e6388608ce60 

ответ

5

Когда дело доходит до мерзавец подмодулей, почти любая проблема вы сталкиваетесь может быть решена:

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

Очевидно, что если вы сделали локальные изменения в ваш подмодуль это приведет к удалению их ПОСТОЯННО, поэтому если вы иметь локальные изменения, убедитесь, что вы их первыми нажали.

+1

Интересно, я попробовал и не очень помог, он все еще сказал, что «iris» не работает после того, как я обновил его с нуля. И самое удивительное, проблема исчезла после того, как «git add iris». – mblsha

+1

это сработало, но почему это правильный способ справиться с этим? –

3

Я разместил аналогичный question здесь, в stackoverflow, и в конечном итоге ответил на него сам, но я обнаружил, что с помощью git reset HEAD iris работал для моей проблемы с конфликтами подмодулей.

Смежные вопросы