आपको यह छोटी वस्तु पसंद आ सकती है ... यह सूची को खींचती है और अंत में सभी चयनों को हटाने से पहले प्रत्येक आइटम की पुष्टि करने के लिए कहती है ...
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`
उपयोग -D को हटाने के लिए मजबूर करें (हमेशा की तरह)।
पठनीयता के लिए, यह है कि लाइन से लाइन टूट गई ...
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`
यहाँ 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
आखिरकार, मुझे अपने .bashrc में यह पसंद है
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'
इस तरह मैं सिर्फ कह सकता हूं
gitSelect | xargs git branch -D.
git branch -D $(git branch | grep 3.2*)
- यह मेरे लिए काम किया। यह उन शाखाओं को हटा देता है जिनका नाम "3.2" से शुरू होता है।grep
- आउटपुट में पैटर्न मिलान (git branch
इस मामले में)।$()
- का अर्थ है निष्पादित करें और परिणाम को रखें।|
- जंजीर।