Hi, On Sat, Apr 25, 2015 at 11:36:25PM +0200, Simon Richter wrote: > I'm trying to set up a continuous integration build for Boost, which > uses massive amounts of submodules, and keep running into problems when > running "git clean" in the toplevel project. > > When I switch to a version where a submodule has been removed (e.g. an > earlier version), "git clean -dx" will not remove the submodule's > directory, because it has its own .git directory. Using a single -f > flag, the process fails (because directories containing .git directories > are no longer skipped), and using -ff removes all submodules (which is > overkill). > > Is there a good way to clean a project, leaving valid submodules in > place (these are then switched to the new tip and cleaned in separate > commands) while removing submodules that are no longer referenced? Unfortunately there is no really nice way for that yet. Safely removing submodule ist still under development. Here is a snippet that I used on a CI server for this purpose: git status --porcelain | grep "^?? " | sed -e 's/^?? //' | \ while read i; do rm -rf "$i" done It does a little more, since it unconditionally removes all untracked files that are not ignored. Cheers Heiko -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html