2014-10-31 39 views
2

我的Keil項目經常存儲一個我想用gitignore忽略的.username文件。gitignore我的windows用戶名

我以爲我可以在我的.gitignore中做*.$(echo %username%),因爲echo %username會在常規的Windows提示符下打印我的名字。我使用git bash,並且顯然它不能獲取這些全局變量(路徑,用戶名,appdata等)。

我該如何實現目標?

+0

根據[這個問題](http://stackoverflow.com/questions/17640160/is-it-possible-to-make-gitignore-changed-according-to-environment-variables),.gitignore文件是完全靜態的,根本不能使用變量。 – Dettorer 2014-10-31 09:46:50

+2

相反,你可以使用[一個額外的.gitignore文件本地存儲到您的副本](http://stackoverflow.com/questions/26510084/is-it-possible-to-have-a-tracked-gitignore-and -an-未跟蹤-gitignore/26510701#26510701)。每個用戶將不得不手動修改它以添加一個靜態的'* .username'規則(只要一次),但每個人都將擁有自己的(並且只有他們的)。 – Dettorer 2014-10-31 09:49:28

+0

@Dettorer我在該主題上提出了你的答案,因爲這將是我接受的答案。我不知道爲什麼人們將這些作爲評論發佈。我希望你可以發表這個答案,所以我可以接受,而不是斯托尼的。 – chwi 2014-11-03 12:38:23

回答

2

.gitignore文件編寫的模式是完全靜態的,不能使用shell這樣的語言來創建高級模式。

相反,你可以使用an additional .gitignore file local to your copy of the repository

git config core.excludesfile .my_gitignore 

該命令告訴Git的有一個額外的文件中,它應該尋找文件忽略模式(在這裏,文件名爲.my_gitignore)。

這是一個本地配置,因此,每個用戶都必須發出相同的命令並手動創建他們的.my_gitignore文件以添加靜態規則,但每個人都將擁有自己的(並且只有他們自己的)規則。

+0

如果複製這樣的答案是不好的做法(請參閱我的答案中的鏈接),即使問題不嚴格地重複,請告訴我並指出適當的標記/更好的練習。我將根據最佳做法編輯或刪除我的答案。 – Dettorer 2014-11-03 12:57:29

+0

我不認爲這是「不好的做法」,因爲你鏈接的答案,這是你的答案,和你添加的關鍵信息,鏈接兩個問題(即沒有變量,所以你需要一個替代品,你提供)。 – rubenvb 2014-11-03 13:03:29

0

那不工作,那麼你的.gitignore文件被修改,你必須提交它們。

最好的方法是將文件保存在單獨忽略的文件夾中。你會發現一個模式來排除它們。例如

/user/something/.* 

但修改您的.gitignore是不是在這種情況下,我認爲正確的方式。