我在Windows上运行Cmder,同时尝试在父目录中的所有存储库上运行git log
。
更新
我的shell是gitbash版本1.9.4.msysgit.0
当我跑步时:
find . -name ".git" -type d -maxdepth 2 -exec echo git --git-dir={} log ;
git --git-dir= log
git --git-dir= log
git --git-dir= log
exec似乎没有找到find中的匹配项,但是当我在{}
之前运行带有前导空格的命令时,匹配将被提供给exec语句,但git的语法不正确。
find . -name ".git" -type d -maxdepth 2 -exec echo git --git-dir= {} log ;
git --git-dir= ./repo1/.git log
git --git-dir= ./repo2/.git log
git --git-dir= ./repo3/.git log
知道为什么-exec在没有前导空格的情况下不处理参数?
答案 0 :(得分:0)
仍然不确定问题的根源是什么,但以下语法按预期工作。
find . -name ".git" -type d -maxdepth 2 -exec echo git --git-dir="{}" log ;
将{}
括在双引号中提供我正在寻找的修复。