2013-02-05 17 views
0

我有一個項目下git。在我的gitignore文件中,我有一個文件夾文件夾/我不希望git關心。問題是,每次我要結帳分支時,系統都會提示錯誤:以下未跟蹤的工作樹文件將被結帳覆蓋:由於gitignore沒有結帳

錯誤:以下未跟蹤的工作樹文件將被結帳覆蓋: 文件夾/ somefile 文件夾/子文件夾/ somefile ...

所以我搬走了文件夾/,再次提交,然後拿回文件夾/在我的git回購。但爲什麼這個信息總是出現? (在我的.gitignore中,我有一行:文件夾/)

回答

1

您收到此消息是因爲在將該文件夾添加到.gitignore之前,您提交的文件位於folder/之內。

這意味着,儘管您的文件夾在您的.gitignore中,但它已存在於您的存儲庫中,因此將被檢出,就像所有其他文件一樣。 檢查文件時,不檢查出來

.gitignore使用。

如果要從您的git存儲庫中刪除folder/,可以通過發出命令git rm folder/來完成。

+0

帽子你的意思是提交文件?沒有提交全球流程?實際上我做的是我刪除了文件夾,提交,然後我拿回文件夾/ – user1611830

+1

,確保你使用'--cached'標誌,除非你想讓git刪除物理文件。 – cori

1

你有一些文件/文件夾在你已經簽出的分支中提交,大概在你將它們添加到.gitignore之前。

使用git rm folder\ --cached將它們從您的索引中刪除,然後重試 - 您不應該收到警告。

+0

你的意思是,當我刪除文件夾/然後提交時,我的索引和我的工作樹仍然不乾淨? – user1611830

+0

嗯,如果不知道更多關於repo結構的信息,我有點難以說出,但爲了徹底清理,您必須查看每個分支的「文件夾」已被提交併使用'git rm' 。你還需要確保「folder \」在每個分支的'.gitignore'中 - 這很容易讓這些東西不同步,特別是在有很多分支的回購中。這聽起來像在你當前的'HEAD'中,你在'.gitignore'中和你正在檢出的分支中缺少「folder \」,「folder \」仍然在索引中。 – cori