git animals過這樣一系列命令:git add *和git add。有什麼區別?
git init
git add *
git commit -a -m ‘initial commit and release!’
什麼git add *
相比git add .
(我通常做的),他們是一致的嗎?
git animals過這樣一系列命令:git add *和git add。有什麼區別?
git init
git add *
git commit -a -m ‘initial commit and release!’
什麼git add *
相比git add .
(我通常做的),他們是一致的嗎?
git add *
將增加所有可在外殼擴張*
而git add .
的結果會告訴混帳添加當前目錄的路徑。
git add *
將不會添加以.
開頭的路徑,因爲*
的外殼擴展將這些路徑視爲「隱藏」路徑。
git add *
如果任何擴展的路徑正在由git的,因爲git的認爲它是一個錯誤,如果你明確指定一個被忽略的路徑,而沒有經過-f
(力)標誌,以表明你真的想添加一個被忽略的路徑忽略也將失敗。
如果你得到git擴展glob(git add '*'
)它會添加「隱藏」文件並跳過忽略的文件。在這種情況下,它的工作原理與git add .
相同。
* shell *在這裏是指命令行應用程序還是操作系統? –
默認情況下,將目錄傳遞給git add
將遞歸添加其子目錄和文件。
通配符*
將由您的shell作爲當前目錄下的文件名進行擴展。
而你知道,在Unix中.
只引用當前目錄,所以這兩個命令是等價的。雖然*
由shell處理,.
由git處理,但他們做同樣的事情。
由於'*'由shell處理,所以不會考慮'.gitignore',而'.'會。 – wisbucky
*通常表示「匹配所有」和。意思是「當前目錄」,默認情況下是遞歸完成的。 – TylerH4
@ TylerH4:但是如果'*'的擴展包含目錄,那麼在任何情況下都會通過git遞歸添加。 –