Bạn có thể thích mục nhỏ này ... Nó kéo danh sách và yêu cầu xác nhận từng mục trước khi cuối cùng xóa tất cả các lựa chọn ...
git branch -d `git for-each-ref --format="%(refname:short)" refs/heads/\* | while read -r line; do read -p "remove branch: $line (y/N)?" answer </dev/tty; case "$answer" in y|Y) echo "$line";; esac; done`
Sử dụng -D để buộc xóa (như bình thường).
Để dễ đọc, đây là dòng chia nhỏ theo dòng ...
git branch -d `git for-each-ref --format="%(refname:short)" refs/heads/\* |
while read -r line; do
read -p "remove branch: $line (y/N)?" answer </dev/tty;
case "$answer" in y|Y) echo "$line";;
esac;
done`
đây là cách tiếp cận xargs ...
git for-each-ref --format="%(refname:short)" refs/heads/\* |
while read -r line; do
read -p "remove branch: $line (y/N)?" answer </dev/tty;
case "$answer" in
y|Y) echo "$line";;
esac;
done | xargs git branch -D
cuối cùng, tôi muốn có cái này trong .bashrc của tôi
alias gitselect='git for-each-ref --format="%(refname:short)" refs/heads/\* | while read -r line; do read -p "select branch: $line (y/N)?" answer </dev/tty; case "$answer" in y|Y) echo "$line";; esac; done'
Theo cách đó tôi chỉ có thể nói
gitSelect | xargs git branch -D.
git branch -D $(git branch | grep 3.2*)
- điều này làm việc cho tôi. Nó xóa các nhánh có tên bắt đầu bằng "3.2".grep
- khớp mẫu trong đầu ra (git branch
trong trường hợp này).$()
- có nghĩa là thực hiện và đặt kết quả.|
- xích.