2017-03-27 98 views
0

我試圖刪除我所有的合併分支。我一直使用刪除所有已合併的git分支 - 致命:需要分支名稱?

git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d但由於某種原因,它不會工作了,即使我以前使用過這個命令。它返回錯誤「致命:需要分支名稱」

+0

嘗試忽略'| xargs git branch -d'。如果這不能解釋它,請嘗試刪除'egrep'以獲得更多照明。 – torek

回答

4

如果在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 
+0

感謝您在沒有其他分支機構刪除的情況下添加! – AjaxLeung