我正在使用 zsh 和zsh-git-提示符并且运行良好。当我进入 git 存储库文件夹时,我收到有关 git 状态的通知:
thomas@linux-fopt ~Path/to/Git/repo(localDevelop|✚2)%
意思是,我在localDevelop
分支上修改了两个文件。
现在,我非常希望获得当前我所在的文件夹中所有文件夹的概览,如下所示:
$ lsGit
FolderA (master|+1) (<- is a git repo)
FolderB (develop|+2) (<- is a git repo)
FolderC (<- is not a git repo)
应忽略当前文件夹中的文件,仅显示文件夹。
有没有办法用 zsh 实现这一点?
答案1
这样够好吗?
user@host:~$ cat git-ls.zsh
#!/bin/zsh
source ~/zsh-git-prompt/zshrc.sh
for d in *; do
if [[ -d "$d" && -e "$d/.git" ]]; then
echo "$d $(cd "$d" && git_super_status | sed -r 's/(%G|%\{|%\})//g')"
else
echo "$d"
fi
done
user@host:~/dev/external$ ~/git-ls.zsh
1-example-file
ansible (devel|✚2…)
asciinema.org (master|✔)
boltons (master|✔)
caffeine (master|✔)
casperjs (:4225d4c|✔)
Chronicle-Queue (master|✔)
citus (master|✔)
citus-docker (master|✔)
coreutils (master|✔)
cpython
ctop (keyerror_cpuacct_stat|…)
^C
编辑:如果您不关心文件,请参阅该帖子的第一次修订。