diff --git a/README.md b/README.md index c75ad48..f2ac52b 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,7 @@ * [Extract file from another branch.](https://github.com/git-tips/tips#extract-file-from-another-branch) * [List only the root and merge commits.](https://github.com/git-tips/tips#list-only-the-root-and-merge-commits) * [Merge previous two commits into one.](https://github.com/git-tips/tips#merge-previous-two-commits-into-one) +* [List of git repositories in multiple directories.](https://github.com/git-tips/tips#list-of-git-repositories-in-multiple-directories) @@ -695,5 +696,20 @@ git log --first-parent git rebase --interactive HEAD~2 ``` +## List of git repositories in multiple directories. +```sh +find -E /path1 /path2 /path3 \( -regex '.*/\.git + -not -regex '.*/\..*/\.git + \) -type d -print0 | xargs -0 -I {} dirname {} +``` + + +__Alternatives:__ +```sh +find /path1 /path2 /path3 -regextype posix-egrep \( -regex '.*/\.git + -not -regex '.*/\..*/\.git + \) -type d -print0 | xargs -0 -I {} dirname {} +``` + diff --git a/tips.json b/tips.json index df23a19..d9ed1d3 100644 --- a/tips.json +++ b/tips.json @@ -311,4 +311,8 @@ }, { "title": "Merge previous two commits into one.", "tip": "git rebase --interactive HEAD~2" +}, { + "title": "List of git repositories in multiple directories.", + "tip": "find -E /path1 /path2 /path3 \\( -regex '.*/\\.git$' -not -regex '.*/\\..*/\\.git$' \\) -type d -print0 | xargs -0 -I {} dirname {}", + "alternatives": ["find /path1 /path2 /path3 -regextype posix-egrep \\( -regex '.*/\\.git$' -not -regex '.*/\\..*/\\.git$' \\) -type d -print0 | xargs -0 -I {} dirname {}"] }]