2008-11-10 13 views
5

Nach einiger Zeit wollte ich mein Git Repo aktualisieren, und dann ging etwas schief. Was ist der richtige Ausweg aus dieser Situation?Wie aktualisiert man ein Git Repo, das ein Submodul enthält?

[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 

Antwort

5

Wenn es darum geht Submodule git, fast jedes Problem kann man begegnen, indem gelöst werden:

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

Natürlich, wenn Sie auf Ihre Submodul lokale Änderungen vorgenommen haben diese ihnen Endgültig löschen wird, also wenn Sie Haben Sie lokale Änderungen, stellen Sie sicher, dass Sie sie zuerst gedrückt haben.

+1

Interessanterweise habe ich es ausprobiert und nicht wirklich geholfen, es sagte immer noch, dass 'Iris' nicht zusammengefügt wurde, nachdem ich es von Grund auf aktualisiert habe. Und am erstaunlichsten verschwand das Problem nach "git add iris". – mblsha

+1

das hat funktioniert, aber warum ist es der richtige Weg, damit umzugehen? –

3

Ich postete eine ähnliche question hier auf stackoverflow und am Ende antworteten sie selbst, aber ich fand, dass mit git reset HEAD iris für mein Problem mit Submodul Konflikte gearbeitet.