我試圖刪除我所有的合併分支。我一直使用刪除所有已合併的git分支 - 致命:需要分支名稱?
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
但由於某種原因,它不會工作了,即使我以前使用過這個命令。它返回錯誤「致命:需要分支名稱」
我試圖刪除我所有的合併分支。我一直使用刪除所有已合併的git分支 - 致命:需要分支名稱?
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
但由於某種原因,它不會工作了,即使我以前使用過這個命令。它返回錯誤「致命:需要分支名稱」
如果在stdin
上沒有提供任何輸入 - 例如,如果前面的管道沒有輸出 - xargs
將運行沒有參數的命令。也就是說,如果這樣的:
git branch --merged | egrep -v "(^\*|master|dev)"
不產生輸出,然後xargs
將運行:
git branch -d
其中,如果你要嘗試自己在命令行中,產生:
fatal: branch name required
最簡單的解決方案是將--no-run-if-empty
標誌添加到xargs
:
git branch --merged |
egrep -v "(^\*|master|dev)" |
xargs --no-run-if-empty git branch -d
感謝您在沒有其他分支機構刪除的情況下添加! – AjaxLeung
嘗試忽略'| xargs git branch -d'。如果這不能解釋它,請嘗試刪除'egrep'以獲得更多照明。 – torek