2013-01-22 37 views
2

通常我們添加新的文件,如下圖所示:如何「git添加」指定類型的文件?

git add . 

這將添加的所有文件。但是我只想添加指定類型的文件,例如* .C,*的.cpp,* .H ... 所以我會做這樣的:

git add "*.c" 
git add "*.h" 
git add "*.cpp" 

但這似乎不太方便,你有更好的解決辦法?

+2

可能是「.gitignore」和普通的「git add」的組合。 ?你想永遠忽略其他文件嗎? – Thilo

+1

是的。某些文件類型不是我所知的,但我確定它們不是源代碼。我知道.gitignore(我需要列出所有被忽略的類型,對我來說不容易),但是.gitaccept(你知道我的意思)嗎? –

+0

在[我的答案](http://stackoverflow.com/a/14451324/237105)中有一個直接的方法來實現'.gitaccept'行爲。 –

回答

8

的.gitignore:

* 
!*/ 
!*.c 
!*.h 
!*.cpp 

這將活像k與子目錄一樣。

+0

!*/ –

+0

的含義是什麼,它告訴git不要忽略子目錄。如果您不需要子目錄中的文件,請省略此行。 –

1

也許你可以做一個別名

git config alias.accept "!find|egrep '\.(c|h|cpp)$'|xargs git add" 

然後像這樣運行

git accept 

ref

+0

由於globbing將由'bash'完成,它不會進入子目錄。至少'git add **/* {c,h,cpp}' –

+1

在項目中工作的其他人會對看到許多未被跟蹤和未被忽略的文件感到困惑。 –

+0

更新後的版本(1)會將每個文件添加到匹配的目錄中(例如,名爲'ah') –