2012-10-03 40 views
2

隨着Django的南部,我們有這樣的事:當使用git grep時,默認可以忽略某些目錄嗎?

/app 
    /migrations 
    .. migration files. 

由於遷移文件代表歷史的結構,而不是什麼有目前我寧願不通過他們每一次搜索。在運行git grep時,我可以通過某種方式默認排除它們嗎?

+2

可能的重複:http://stackoverflow.com/q/10423143/183791 – dusan

+0

@dusan可能不是一個確切的重複,但答案可能在這裏很有用。 – asmeurer

+0

我不同意重複,因爲這會詢問_by default_。我沒有看到微不足道的減少。 –

回答

2

這是一個糟糕的黑客,但它可能爲你工作:創建app/migrations/.gitattributes具有以下內容

* binary 

,以紀念所有遷移爲二進制文件,然後使用git grep -I跳過二進制文件。

如果你也想忽略的diff遷移,你可以通過改變.gitattributes內容如願

* binary -diff 

discussion有關grep尊重添加屬性,所以有可能是一個妥善的解決辦法1天。

0

我不認爲有單獨使用git grep命令的解決方案。

一種解決方法我能想到的是添加的文件/文件要忽略的.gitignore文件ANS然後執行命令文件夾一樣:

git grep --exclude-standard 
+0

我不能這樣做,我需要悲哀地回購我的數據庫中的數據庫遷移。 –

+0

對於任何想知道的人:雖然可以將跟蹤的文件添加到'.gitignore',但'--exclude-standard'只適用於未跟蹤的文件。 – kynan

1

我有一個別名git grgit grep,使顏色和不區分大小寫。你可以做到這一點,並添加排除。輸入更快!

否則,絕大部分都無法更改Git命令的默認行爲,因爲它們直接在內部使用。

+0

不確定「add excludes」是什麼意思,'git grep'不支持排除模式。或者,您是否通過'!'別名將'git gr'別名爲常規'grep'? – kynan

+0

嗯。我從未注意到這一點。如果你不關心'git grep'的blob特性,我想你可以使用普通的grep,並確保排除'.git'。 – asmeurer

+0

您可以使用文件的默認列表創建一個別名,以便* include *不包含您的遷移文件夾,如[本答案]中所討論的(http://stackoverflow.com/a/14226610/396967) – kynan

相關問題