Hi, I've noticed a strange behavior with submodule/content conflict. My current Git version is 2.12.2, but the problem exists since I remember. Branch A has a submodule. In branch B which diverged from A, I replaced the submodule with its contents. Now, every time I merge A into B, and A had changed the submodule reference, all the files inside the ex-submodule directory in B are being "re-added". Moreover, aborting the merge prints an error, but seems to work nevertheless, and if I run git reset --hard all the files in that directory are actually written to the disk, even though they haven't changed at all. When the submodule is small, it might be ok. But in my project we have a huge submodule with ~16K files, and on each merge all the files are listed, and even mixed reset takes several minutes. The following script demonstrates this: #!/bin/sh rm -rf super sub mkdir sub cd sub git init touch foo git add foo git commit -m 'Initial commit' mkdir ../super; cd ../super git init git submodule add ../sub touch foo; git add foo sub git commit -m 'Initial commit' git checkout -b update-sub git update-index --cacheinfo 160000,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,sub git commit -m 'Update submodule' git checkout -b remove-sub HEAD^ git rm sub mkdir sub touch sub/foo sub/bar git add sub git commit -m 'Replaced submodule with contents' git checkout -b remove-2 HEAD^ git merge --no-ff remove-sub git merge update-sub # Adding sub/foo # Adding sub/bar # CONFLICT (modify/delete): sub deleted in HEAD and modified in update-sub. Version update-sub of sub left in tree at sub~update-sub. # Automatic merge failed; fix conflicts and then commit the result. git merge --abort # error: 'sub' appears as both a file and as a directory # error: sub: cannot drop to stage #0 - Orgad