Edited: I mistakenly misrepresented my problem. A more accurate example now appears below.
I'd like to recursively walk all directories inside a target directory, and stop each recursive call after the first .git directory is found.
For example, if we have these paths:
/home/code/twitter/.git/ /home/code/twitter/some_file /home/code/twitter/some_other_file /home/code/facebook/.git/ /home/code/facebook/another_file /home/code/configs/.git/ /home/code/configs/some_module/.git/ /home/code/configs/another_module/.git/ /home/code/some/unknown/depth/until/this/git/dir/.git/ /home/code/some/unknown/depth/until/this/git/dir/some_file
I want only these lines in the result:
/home/code/twitter /home/code/facebook /home/code/configs /home/code/some/unknown/depth/until/this/git/dir/
-maxdepth won't help me here because I don't know how deep the first .git dir will be for each subdirectory of my target.
find /home/code -type d -name .git -prune would do it, but it's not working for me. What am I missing?