2017-10-18 292 views
1

我使用Zsh與iTerm2並試圖按照these instructions刪除我不小心推到回購的提交(不要擔心,它沒有任何追隨者比我) 。Zsh在iTerm2完成導致git推送錯誤

運行命令

git push -f origin HEAD^:develop 

導致巖組錯誤

error: src refspec HEADER does not match any. 
error: failed to push some refs to '[email protected]:xxx/yyy.git' 

有一個在這個目錄中名爲HEADER文件,所以我想巖組或的iTerm試圖是聰明做一些完成與^

我在Terminal.app中執行了同樣的push命令(仍然使用/bin/sh)並且工作正常。

這是什麼Zsh/iTerm行爲,我該如何控制它?

+3

你試過'混帳推-f起源 「HEAD ^」:develop'(帶引號) – JDB

+2

你也可以使用'HEAD〜'這是等價的。 – JDB

回答

1

我懷疑zsh試圖擴展HEAD^:develop,這是一個有效的glob模式,並且準確地匹配HEADER文件。

一個簡單的解決方法是換你PARAMS引號,這將阻止zsh中被「有用」和擴大那些匹配模式,爲您提供:

git push -f origin "HEAD^":develop 

您也可以逃避問題的字符(如建議爲git-rm文檔):

git push -f origin HEAD\^:develop