2015-10-03 60 views
0

我有這個代碼在我的終端創建.gitignore文件在我~路徑:的.gitignore文件不工作(忽略的Mac OS .DS_Store文件)

touch ~/.gitignore 

,並添加文件和git定義排除下面的代碼文件由:

git config --global core.excludesfile ~/.gitignore 

,然後使用下面的命令刪除所有我.DS_Store文件

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch 

(每個文件已被成功取出,如果我打開Xcode和按提交D標籤將出現接近這個文件)

我承諾之前,我通過這個命令添加.DS_Store.gitignore文件:

echo .DS_Store >> ~/.gitignore 

它也可以工作並在文件中寫入值,但它不起作用。因爲當我回到xcode並提交文件,然後返回到查找程序並導航到文件夾並返回到xcode時,我可以在提交對話框中看到.DS_Store文件。

有人有什麼想法是什麼問題?

+0

你究竟想要什麼?答:從git repo中刪除.DS_Store並從不再次提交這些文件或者B:忽略你執行git rm的事實? – BartBog

+1

相關:http://stackoverflow.com/questions/25700186/ds-store-still-appears-in-git-status-despite-being-in-gitignore – Jubobs

回答

0

執行

git rm 

後,你仍然需要提交這些更改

git commit -m "deleted all .DS files" 

下一次你會問的git的差異,這些文件將不再顯示爲修改或者「新「,因爲它們在你的全球gitignore文件中

+0

* [...]您仍然需要提交這些更改[...] *否; git rm'DS_Store'應該就夠了。無需創建提交。 – Jubobs

+0

沒有。在你執行git rm DS_Store之後,這個文件的刪除將會暫存,但尚未提交。在文件被實際刪除之前,你必須做一次git commit。只要你不犯它,它仍然會在git狀態下顯示爲「已刪除」(即使它現在在gitignore中) – BartBog

+0

我認爲我們指的是兩個不同的東西。 'git rm DS_Store'確實從工作樹中刪除了這個文件,但是你是正確的,你需要爲這個文件創建一個不會出現在'git status'輸出中的提交。 – Jubobs