[英]Showing git branch when listing directories - Ubuntu Terminal
只是一個簡單的問題,列出這些文件夾時,有什么方法可以列出不同文件夾的分支嗎?
我的意思是,說您有幾個具有不同項目的文件夾,並且想要執行ls -l
,還可以查看不同文件夾中的哪個分支,有沒有辦法?
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
,這只是一個粗略的解決方案。
這將打印目錄和當前目錄:
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 \;
注意rev-parse --abbrev-ref HEAD
vs branch
它假定您在一個目錄中有多個存儲庫,也可以通過替換branch
來進行pull
,以使所有項目保持同步。
別名可能會變得很方便,例如:
alias pb='find . -type d -depth 1 -print0 -exec git --git-dir={}/.git rev-parse --abbrev-ref HEAD \;'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.