列出目录时显示git分支 - Ubuntu终端

时间:2017-09-22 14:28:08

标签: linux git ubuntu terminal gnome-terminal

只是一个简单的问题,有没有办法在列出这些文件夹时列出不同文件夹的分支?

我的意思是,假设您有几个包含不同项目的文件夹,并且您想要ls -l并且还要查看哪个分支位于不同的文件夹中,是否有办法?

2 个答案:

答案 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