Ark*_*nez 91
如果你在Linux中find / -name ".git"
,否则没有办法,它们是标准目录,只需使用你的OS文件/文件夹查找程序来查找.git
命名文件夹.
Eri*_*ham 38
这在Windows Powershell中非常有效:
Get-ChildItem . -Attributes Directory+Hidden -ErrorAction SilentlyContinue -Include ".git" -Recurse
Run Code Online (Sandbox Code Playgroud)
gah*_*ooa 14
在*nix上,这也将找到任何--bare
存储库.
find / -name "*.git" -type d
Run Code Online (Sandbox Code Playgroud)
Wal*_*oss 11
.git
在 Linux 和 OS X 上,当 的根目录为 时,find
以下命令可能是最快的(忽略没有 的存储库) /
:
find / -name .git -exec dirname {} \; -prune
Run Code Online (Sandbox Code Playgroud)
但对于下面主要有存储库的根来说,以下可能是最快的(您可能需要替换/
为.
或另一个根):
find / -type d -exec test -d {}/.git \; -prune -print
Run Code Online (Sandbox Code Playgroud)
使用的原色的快速解释find
(因为这里没有运算符,-and
所以是隐式的,即,对于每个访问的节点,原色从左到右评估,直到其中一个评估为false
):
-name
是true
名称是否匹配(通常,但不在这里,使用通配符)-exec
执行由 终止的命令;
(由 转义以\
避免被 shell 解释),true
如果返回状态为0
(即 OK),则为 。当前节点可用作{}
(无需转义)-prune
总是true
,并导致所有子节点被跳过-type d
用于true
目录-print
此处需要,因为如果-exec
存在,则不会隐式附加Git仓库都有HEAD
,refs
,objects
和.git
项.
在GNU /任何东西,
find -name HEAD -execdir test -e refs -a -e objects \; -printf %h\\n
Run Code Online (Sandbox Code Playgroud)
只是检查.git/config
将错过许多裸回购和所有子模块.
归档时间: |
|
查看次数: |
71190 次 |
最近记录: |