Как обновить git-репо, содержащее подмодуль?

StackOverflow https://stackoverflow.com/questions/278564

  •  07-07-2019
  •  | 
  •  

Вопрос

Через некоторое время я захотел обновить свое 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 помогло мне решить проблему с конфликтами субмодулей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top