我的git项目包含我不想被推送到存储库的.cas文件。我因此添加了一行
**/*.cas
到我的.gitignore
文件,但.cas
文件仍会显示在git status
中。
阅读了许多其他帖子后,我检查了.gitignore
条目没有尾随空格,并且它们确实有unix行更改说明符。
然后按照此处的建议运行以下命令: .gitignore does not work
git rm -r --cached .
git add .
但徒劳无功! git status
仍会报告,例如。
new file: calc/2_preliminary/1_CFD/7_Calc_Fluent/03_stationary_vof_stationary/mesh_04/run_10000.cas
有什么想法吗?我真的很感激。
.gitignore
文件内容:
calc/
0_BSc_Alvarez/
calc/0_Test/
documentation/Tutorial_Fluent/
literature/
thunderbird/
**/.idea/
.zim
**/ND800_*
**/*.cas
**/*.dat
**/*.cdat
**/*.uns
**/*.msh
**/*.bak
git版本是1.7.1
答案 0 :(得分:6)
你在评论中说你使用git v1.7.1。旧的git版本是的问题。 **/
模式仅在1.8.2中添加,因此您的git只是不理解它。此外,你真的不需要**/
部分,你应该只使用
*.cas
答案 1 :(得分:4)
您的说明部分正确。你跑了:
git rm -r --cached .
删除了Git跟踪的不需要的文件。但由于某种原因,你决定再次使用
添加它git add .
这导致不需要的文件现在显示为 new 文件:
new file: calc/2_preliminary/1_CFD/7_Calc_Fluent/03_stationary_vof_stationary/mesh_04/run_10000.cas
它是一个新文件的原因是因为你已经告诉Git忘了它。
正确的做法是仅在回购中暂存您真正想要的文件,这将排除以.cas
结尾的文件。
<强>更新强>
尝试运行git rm
,但这次只包含.cas
个文件:
git ls-files | grep '\.cas$' | xargs git rm
现在,如果您运行git status
,您应该只看到.cas
个文件被删除。好吧,它们实际上并没有从您的本地文件系统中删除,但它们将从存储库中删除。