只是一个简单的问题,有没有办法在列出这些文件夹时列出不同文件夹的分支?
我的意思是,假设您有几个包含不同项目的文件夹,并且您想要ls -l
并且还要查看哪个分支位于不同的文件夹中,是否有办法?
答案 0 :(得分:0)
ls -l | awk '{cmd="git --git-dir="$NF"/.git branch 2>/dev/null| grep ^*";system(cmd "> .tmp");getline branch < ".tmp";close(".tmp");print $0" "branch} END {cmd="rm -rf .tmp";system(cmd)}'
我不擅长awk
,这只是一个粗略的解决方案。
答案 1 :(得分:0)
这将打印目录和当前:
123
输出类似于:
find . -type d -depth 1 -print0 -exec git --git-dir={}/.git rev-parse --abbrev-ref HEAD \;
要使用空格./dir<branch>
来改善输出,这可以起作用:
./dir<space><branch>
要查看所有分支,这将起作用:
find . -type d -depth 1 -print0 -exec sh -c 'b=$(git --git-dir={}/.git rev-parse --abbrev-ref HEAD); echo " $b"' \;
请注意find . -type d -depth 1 -print0 -exec git --git-dir={}/.git branch \;
vs rev-parse --abbrev-ref HEAD
它假设您在目录中有多个存储库,您也可以通过替换branch
来执行pull
以使所有项目保持同步。
别名可能会变得很方便,例如:
branch