簡體   English   中英

列出目錄時顯示git分支-Ubuntu Terminal

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM