2014-07-12 63 views
1

我想過濾一些包含密碼的文件,以便密碼不提交到我的存儲庫(其餘的文件必須提交,但是,並且沒有辦法將密碼放入他們自己的文件)。我試圖複製Windows的here解決方案,最後只需在#gitignore處標記密碼行,過濾器將阻止它們保存在回購站中。git過濾器與findstr失敗

我正在嘗試使用Windows'findstr來過濾文件。首先,我註冊了過濾器:

#in gitattributes 
myfile.txt filter=gitignore 

然後創建過濾器這樣的:

>git config --global filter.gitignore.clean "findstr /v #gitignore$" 
>git config --global filter.gitignore.smudge "type" 

/v選項打印除了匹配的那些行。我確定myfile.txt以換行符結束,以免掛起findstr。然而,當我在添加後做git add myfile.txtgit reset,我得到這個錯誤:

error: external filter findstr /v #gitignore$ failed 1 
error: external filter findstr /v #gitignore$ failed 

過濾器失敗,密碼行添加到索引。

如何修復此過濾器以使其正常工作?

回答

0

嘗試和使用unix命令爲您的過濾器(它是默認情況下作爲bash腳本運行)會更容易。

  • grep(在Git軟件包,或者,如果是太舊了,通過Gnu On Windows

    grep -v #gitignore$ 
    
  • cat(而不是type

+0

礦井沒有配備grep,所以這個失敗的方式完全一樣。 –

+0

@NateGlenn任何msysgit發佈都有grep。你有什麼混帳?但是Windows上的Gnu也可以提供幫助。 – VonC

+0

我用巧克力裝了它。其實'git --version'告訴我它是msysgit,所以我不知道爲什麼我沒有git。我知道我可以在Chocolatey上安裝更多的東西,但我正在試圖獲得一個不需要更多軟件的解決方案。 –